Submission #528103

#TimeUsernameProblemLanguageResultExecution timeMemory
528103CSQ31Coin Collecting (JOI19_ho_t4)C++17
100 / 100
171 ms7308 KiB
#include <bits/stdc++.h> using namespace std; typedef long long int ll; ll c[200005][3]; int main() { int n; cin>>n; ll ans = 0; for(int i=0;i<2*n;i++){ int x,y; cin>>x>>y; if(x<1){ ans+=1-x; x = 1; }else if(x>n){ ans+=x-n; x = n; } if(y<1){ ans+=1-y; y = 1; }else if(y>2){ ans+=y-2; y = 2; } c[x][y]++; } for(int i=1;i<=n;i++){ c[i][1]--;c[i][2]--; if(c[i][1] > 0 && c[i][2] < 0){ int tmp = min(c[i][1],-c[i][2]); ans+=tmp; c[i][1]-=tmp; c[i][2]+=tmp; }else if(c[i][1] < 0 && c[i][2] > 0){ int tmp = min(-c[i][1],c[i][2]); ans+=tmp; c[i][1]+=tmp; c[i][2]-=tmp; } ans+=abs(c[i][1]); ans+=abs(c[i][2]); c[i+1][1]+=c[i][1]; c[i+1][2]+=c[i][2]; } cout<<ans<<'\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...