Submission #778748

#TimeUsernameProblemLanguageResultExecution timeMemory
778748DobromirAngelovCoin Collecting (JOI19_ho_t4)C++14
100 / 100
44 ms4920 KiB
#include<bits/stdc++.h> #define endl '\n' using namespace std; const int MAXN=1e5+5; int n; int cnt[2][MAXN]; long long ans=0; void add(int t,int x) { if(x<1) { ans+=1-x; cnt[t][1]++; } else if(x>n) { ans+=x-n; cnt[t][n]++; } else cnt[t][x]++; } int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin>>n; for(int i=1;i<=2*n;i++) { int x,y; cin>>x>>y; if(y<=1) { add(0,x); ans+=1-y; } else { add(1,x); ans+=y-2; } } int r0=0,r1=0; for(int i=1;i<=n;i++) { r0+=cnt[0][i]; r1+=cnt[1][i]; int vert=0; if(r0<i && i<r1) { vert=min(i-r0, r1-i); r0+=vert; r1-=vert; } if(r0>i && i>r1) { vert=min(r0-i, i-r1); r0-=vert; r1+=vert; } ans+=vert; ans+=abs(r0+r1-2*i); } cout<<ans<<endl; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...