Submission #532985

#TimeUsernameProblemLanguageResultExecution timeMemory
532985amunduzbaevCoin Collecting (JOI19_ho_t4)C++17
0 / 100
1 ms224 KiB
#include "bits/stdc++.h" using namespace std; #define ar array #define int long long signed main(){ ios::sync_with_stdio(0); cin.tie(0); int n; cin>>n; n <<= 1; vector<ar<int, 2>> a(n), b(n); int res = 0; for(int i=0;i<n;i++){ cin>>a[i][0]>>a[i][1]; b[i][0] = i / 2 + 1, b[i][1] = (i&1) + 1; if(a[i][1] > 2) res += (a[i][1] - 2), a[i][1] = 2; if(a[i][1] < 1) res += (1 - a[i][1]), a[i][1] = 1; if(a[i][0] < 1) res += (1 - a[i][0]), a[i][0] = 1; if(a[i][0] > n/2) res += (a[i][0] - n/2), a[i][0] = n/2; //~ cout<<a[i][0]<<" "<<a[i][1]<<"\n"; } sort(a.begin(), a.end()); sort(b.begin(), b.end()); deque<int> tmp[2]; for(int i=0;i<n;i++){ res += abs(a[i][0] - b[i][0]); if(a[i][1] != b[i][1]){ tmp[a[i][1] - 1].push_back(i); //~ cout<<a[i][0]<<" "<<b[i][0]<<" "<<a[i][1]<<"\n"; } else { //~ cout<<a[i][0]<<" "<<a[i][1]<<" : "<<b[i][0]<<" "<<b[i][1]<<"\n"; } } while(!tmp[0].empty() && !tmp[1].empty()){ int i = tmp[0].front(), j = tmp[1].front(); if(i > j) swap(i, j); //~ cout<<a[i][0]<<" "<<b[i][0]<<" "<<a[i][1]<<"\n"; //~ cout<<a[j][0]<<" "<<b[j][0]<<" "<<a[j][1]<<"\n\n"; if(abs(a[i][0] - b[j][0]) + abs(a[j][0] - b[i][0]) == abs(a[i][0] - b[i][0]) + abs(a[j][0] - b[j][0])){ tmp[0].pop_front(), tmp[1].pop_front(); } else { res++; if(tmp[0].front() == i) tmp[0].pop_front(); else tmp[1].pop_front(); } } //~ for(auto i : tmp[0]){ //~ cout<<a[i][0]<<" "<<a[i][1]<<" : "<<b[i][0]<<" "<<b[i][1]<<"\n"; //~ } //~ for(auto i : tmp[1]){ //~ cout<<a[i][0]<<" "<<a[i][1]<<" : "<<b[i][0]<<" "<<b[i][1]<<"\n"; //~ } res += (int)tmp[0].size() + (int)tmp[1].size(); cout<<res<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...