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;
typedef long long ll;
signed main(){
cin.tie(0); ios_base::sync_with_stdio(0);
int n;
cin >> n;
ll ans=0;
int c[n][2];
memset(c, 0, n*2*sizeof(int));
for(int i=0; i<2*n; i++){
int x, y;
cin >> x >> y;
x--; y--;
bool sid;
if(y<=0){
ans += 0-y;
sid = 0;
}
else{
ans += y-1;
sid = 1;
}
if(x<0){
ans += 0-x;
c[0][sid]++;
}
else if(x>=n){
ans += x-(n-1);
c[n-1][sid]++;
}
else{
c[x][sid]++;
}
}
int d0=0, d1=0;
for(int i=0; i<n; i++){
d0 += c[i][0]-1;
d1 += c[i][1]-1;
if(d0 < 0 && d1 > 0){
int sw = min(-d0, d1);
ans += sw;
d0 += sw;
d1 -= sw;
}
if(d1 < 0 && d0 > 0){
int sw = min(d0, -d1);
ans += sw;
d0 -= sw;
d1 += sw;
}
ans += abs(d0);
ans += abs(d1);
}
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... |