Submission #1329479

#TimeUsernameProblemLanguageResultExecution timeMemory
1329479Jawad_Akbar_JJTopovi (COCI15_topovi)C++20
120 / 120
651 ms39936 KiB
#include <iostream>
#include <map>

using namespace std;
#define int long long
int n, k, q, cnt;
map<int, int> col, row, cntR, cntC;
map<pair<int, int>, int> Pow;

void eraseData(int r, int c){
	cnt -= cntC[row[r]];
	cntR[row[r]]--;
	cnt -= cntR[col[c]];
	cntC[col[c]]--;
}

void insertData(int r, int c){
	cnt += cntC[row[r]];
	cntR[row[r]]++;
	cnt += cntR[col[c]];
	cntC[col[c]]++;
}

signed main(){
	ios_base::sync_with_stdio(false); cin.tie(NULL);
	cin>>n>>k>>q;

	cntR[0] = n, cntC[0] = n;

	for (int i=1;i<=k;i++){
		int r, c, x;
		cin>>r>>c>>x;

		eraseData(r, c);
		row[r] ^= x;
		col[c] ^= x;
		insertData(r, c);
		Pow[{r, c}] = x;

	}

	for (int i=1;i<=q;i++){
		int r1, r2, c1, c2, x;
		cin>>r1>>c1>>r2>>c2;

		x = Pow[{r2, c2}] = Pow[{r1, c1}];

		eraseData(r1, c1);
		row[r1] ^= x;
		col[c1] ^= x;
		insertData(r1, c1);


		eraseData(r2, c2);
		row[r2] ^= x;
		col[c2] ^= x;
		insertData(r2, c2);

		cout<<-cnt<<'\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...