Submission #850671

#TimeUsernameProblemLanguageResultExecution timeMemory
850671willychanCoin Collecting (JOI19_ho_t4)C++14
100 / 100
39 ms4908 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; //#include<bits/extc++.h> //__gnu_pbds int cnt[200005][2]; int main(){ ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0); ll ans = 0; int n;cin>>n; for(int i=0;i<2*n;i++){ int x,y;cin>>x>>y; if(y>=2){ if(x<1){ cnt[1][1]+=1; ans+=abs(x-1)+abs(y-2); }else if(x>n){ cnt[n][1]+=1; ans+=abs(x-n)+abs(y-2); }else{ cnt[x][1]+=1; ans+=abs(y-2); } }else{ if(x<1) { cnt[1][0]+=1; ans+=abs(x-1)+abs(y-1); }else if(x>n){ cnt[n][0]+=1; ans+=abs(x-n)+abs(y-1); }else{ cnt[x][0]+=1; ans+=abs(y-1); } } } int d[2]={0,0}; for(int x=1;x<=n;x++){ d[0]+=cnt[x][0]-1; d[1]+=cnt[x][1]-1; if(d[0]>0 && d[1]<0){ int g = min(d[0],-d[1]); ans+=g; d[0]-=g;d[1]+=g; }else if(d[0]<0 && d[1]>0){ int g = min(-d[0],d[1]); ans+=g; d[0]+=g;d[1]-=g; } ans+=abs(d[0])+abs(d[1]); } cout<<ans<<"\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...