This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
long long n,a,b,ans = 0,br1 = 0,br2 = 0;
cin >> n;
vector<long long> haha(n);
for(long long i = 0; i < 2*n; i++) {
cin >> a >> b;
if(a > n) {
ans+=a-n;
a = n;
}
else if(a < 1) {
ans+=1-a;
a = 1;
}
if(b < 1) {
ans+=1-b;
b = 1;
}
else if(b > 2) {
ans+=b-2;
b = 2;
}
haha[a-1]++;
if(b == 1) {
br1++;
}
else {
br2++;
}
}
ans+=abs(br1-br2)/2;
stack<pair<long long,long long>> idk;
for(long long i = 0; i < n; i++) {
if(haha[i] < 2) {
while(!idk.empty() && haha[i] < 2 && idk.top().second == 1) {
ans+=i-idk.top().first;
haha[i]++;
}
while(haha[i] < 2) {
haha[i]++;
idk.push({i,0});
}
}
else if(haha[i] > 2) {
while(!idk.empty() && haha[i] > 2 && idk.top().second == 0) {
ans+=i-idk.top().first;
haha[i]--;
}
while(haha[i] > 2) {
haha[i]--;
idk.push({i,1});
}
}
}
cout << ans;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |