Submission #6908

#TimeUsernameProblemLanguageResultExecution timeMemory
6908cki86201막대기 (KOI13_game)C++98
100 / 100
120 ms8196 KiB
#include<stdio.h> #include<algorithm> #include<map> using namespace std; typedef long long ll; #define X first #define Y second typedef pair<int,int> Pi; ll ans; Pi stick[100010]; int n, L; map <int, ll> M; inline int get(Pi &a){return abs(a.X - a.Y) + L;} int main(){ scanf("%d%d",&n,&L); int i; for(i=0;i<n;i++)scanf("%d%d",&stick[i].X,&stick[i].Y); sort(stick, stick+n); ll now = 0; for(i=0;i<n;i++){ if(i == 0 || stick[i].X != stick[i-1].X){ ans = max(ans, now); now = 0; } ll tmp = now + get(stick[i]), mp = M[stick[i].Y]; now = max(now, mp + get(stick[i])); ans = max(ans, M[stick[i].Y] = max(mp, tmp)); } printf("%lld",max(ans,now)); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...