Submission #1111351

#TimeUsernameProblemLanguageResultExecution timeMemory
1111351fyanCoin Collecting (JOI19_ho_t4)C++14
100 / 100
42 ms11344 KiB
#include "bits/stdc++.h"
using namespace std;
#define all(x) begin(x), end(x)
#define sz(x) (int) (x).size()
#define int long long
const int mxn = 2e5+5;

int N,X[mxn],Y[mxn];
int A[3][mxn];

signed main() {
	ios::sync_with_stdio(false); cin.tie(nullptr);
	
	cin>>N;
	int res = 0;
	for (int i=0; i<2*N; i++) {
		cin>>X[i]>>Y[i];
		if (X[i] < 1) {
			res += 1-X[i];
			X[i] = 1;
		}
		if (X[i] > N) {
			res += X[i]-N;
			X[i] = N;
		}
		if (Y[i] < 1) {
			res += 1-Y[i];
			Y[i] = 1;
		}
		if (Y[i] > 2) {
			res += Y[i]-2;
			Y[i] = 2;
		}
		A[Y[i]][X[i]]++;
	}

	int t1=0, t2=0;
	for (int i=1; i<=N; i++) {
		t1 += A[1][i] - 1;
		t2 += A[2][i] - 1;
		if (t1 < 0 && t2 > 0) {
			int t = min(-t1,t2);
			res += t;
			t1 += t; t2 -= t;
		}
		if (t1 > 0 && t2 < 0) {
			int t = min(t1,-t2);
			res += t;
			t1 -= t; t2 += t;
		}
		res += abs(t1);
		res += abs(t2);
	}
	cout<<res;
	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...