Submission #533022

#TimeUsernameProblemLanguageResultExecution timeMemory
533022amunduzbaevCoin Collecting (JOI19_ho_t4)C++17
100 / 100
99 ms16644 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;
	vector<vector<int>> cc(n / 2 + 1, vector<int>(3));
	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;
		cc[a[i][0]][a[i][1]]++;
	}
	
	ar<int, 3> dp {};
	for(int i=1;i<=n/2;i++){
		for(int j=1;j<=2;j++){
			dp[j] += (cc[i][j] - 1);
		}
		
		if(dp[1] * 1ll * dp[2] < 0){
			int t = min(abs(dp[1]), abs(dp[2]));
			if(dp[1] > 0) dp[1] -= t, dp[2] += t;
			else dp[2] -= t, dp[1] += t;
			res += t;
		}
		
		res += abs(dp[1]), res += abs(dp[2]);
	}
	
	cout<<res<<"\n";
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...