Submission #126547

#TimeUsernameProblemLanguageResultExecution timeMemory
126547HungAnhGoldIBO2020Coin Collecting (JOI19_ho_t4)C++14
0 / 100
2 ms376 KiB
#include<iostream> #include<algorithm> #include<vector> #include<math.h> using namespace std; const int N=2e5+2; pair<int,int> coor[N]; vector<int> lis,lis1; bool used[N],wow[N>>1][2]; int main(){ ios::sync_with_stdio(0); cin.tie(0); int n,i,j,k,l; long long ans=0; cin>>n; for(i=1;i<=2*n;i++){ cin>>coor[i].first>>coor[i].second; } sort(coor+1,coor+1+2*n); j=1; bool cac,cac1; for(i=1;i<=n;i++){ while(j<=2*n&&coor[j].first<=i){ if(coor[j].second>=2){ lis1.push_back(j); } else{ lis.push_back(j); } j++; } cac=false; cac1=false; if(!lis.size()&&!lis1.size()){ wow[i][0]=true; wow[i][1]=true; continue; } if(lis.size()){ ans+=abs(coor[lis.back()].first-i)+abs(coor[lis.back()].second-1); used[lis.back()]=true; lis.pop_back(); cac=true; } if(lis1.size()){ ans+=abs(coor[lis1.back()].first-i)+abs(coor[lis1.back()].second-2); used[lis1.back()]=true; lis1.pop_back(); cac1=true; } if(cac&&cac1){ continue; } if(!cac){ if(lis1.size()){ ans+=abs(coor[lis1.back()].first-i)+abs(coor[lis1.back()].second-1); used[lis1.back()]=true; lis1.pop_back(); } else{ wow[i][0]=true; } continue; } if(lis.size()){ ans+=abs(coor[lis.back()].first-i)+abs(coor[lis.back()].second-2); used[lis.back()]=true; lis.pop_back(); } else{ wow[i][1]=true; } } //cout<<"ditmemay "<<ans<<endl; lis.clear(); lis1.clear(); j=2*n; for(i=n;i>=1;i--){ while(j&&coor[j].first>=i){ if(!used[j]){ if(coor[j].second>=2){ lis1.push_back(j); } else{ lis.push_back(j); } } j--; } if(!wow[i][0]&&!wow[i][1]){ continue; } if(wow[i][0]){ if(lis.size()){ ans+=abs(coor[lis.back()].first-i)+abs(coor[lis.back()].second-1); lis.pop_back(); wow[i][0]=false; } } if(wow[i][1]){ if(lis1.size()){ ans+=abs(coor[lis1.back()].first-i)+abs(coor[lis1.back()].second-2); lis1.pop_back(); wow[i][1]=false; } } if(wow[i][0]){ if(lis1.size()){ ans+=abs(coor[lis1.back()].first-i)+abs(coor[lis1.back()].second-1); lis1.pop_back(); wow[i][0]=false; } } if(wow[i][1]){ if(lis.size()){ ans+=abs(coor[lis.back()].first-i)+abs(coor[lis.back()].second-2); lis.pop_back(); wow[i][1]=false; } } } cout<<ans; }

Compilation message (stderr)

joi2019_ho_t4.cpp: In function 'int main()':
joi2019_ho_t4.cpp:13:12: warning: unused variable 'k' [-Wunused-variable]
  int n,i,j,k,l;
            ^
joi2019_ho_t4.cpp:13:14: warning: unused variable 'l' [-Wunused-variable]
  int n,i,j,k,l;
              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...