Submission #411826

#TimeUsernameProblemLanguageResultExecution timeMemory
411826ngpin04Coin Collecting (JOI19_ho_t4)C++14
100 / 100
66 ms5004 KiB
#include <bits/stdc++.h>
#define fi first
#define se second
#define mp make_pair
using namespace std;
const int N = 1e5 + 5; 

int cnt[N][2];
int val[2];
int n;

int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	cin >> n;
	long long ans = 0;
	for (int i = 1; i <= 2 * n; i++) {
		int x,y;
		cin >> x >> y;
		if (x > n) {
			ans += x - n;
			x = n;
		}
		if (x < 1) {
			ans += 1 - x;
			x = 1;
		}
		if (y > 2) {
			ans += y - 2;
			y = 2;
		}
		if (y < 1) {
			ans += 1 - y;
			y = 1;
		}
		cnt[x][y - 1]++;
	}

	for (int i = 1; i <= n; i++) {
		for (int j = 0; j < 2; j++)
			val[j] += cnt[i][j] - 1;

		for (int j = 0; j < 2; j++) {
			if (val[j] > 0 && val[j ^ 1] < 0) {
				int t = min(val[j], -val[j ^ 1]);
				ans += t;
				val[j] -= t;
				val[j ^ 1] += t;
			}
		}
	
		for (int j = 0; j < 2; j++)
			ans += abs(val[j]);
	}
	cout << ans;
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...