Submission #1192654

#TimeUsernameProblemLanguageResultExecution timeMemory
1192654JooDdaeMemory 2 (JOI16_memory2)C++20
0 / 100
0 ms328 KiB
#include "Memory2_lib.h"
#include<bits/stdc++.h>
using namespace std;

void Solve(int T, int N) {
	random_device rd;
	mt19937 g(rd());
	
	int M = N+N;
	vector<vector<int>> q(M, vector<int>(M, -1));

	vector<int> id(M); iota(id.begin(), id.end(), 0);
	shuffle(id.begin(), id.end(), g);

	array<int, 2> v = {id[0], id[1]};
	q[id[0]][id[1]] = Flip(id[0], id[1]);
	for(int j=2;j<M;j++) {
		int i = id[j];
		auto [x, y] = v;
		q[x][i] = Flip(x, i);
		q[y][i] = Flip(y, i);

		if(q[x][i] == q[x][y]) v = {y, i};
		else if(q[y][i] == q[x][y]) v = {x, i};
	}
	Answer(v[0], v[1], q[v[0]][v[1]]);

	vector<int> c(N, -1);
	for(int i=0;i<M;i++) if(i != v[0] && i != v[1]) {
		int u = Flip(i, v[0]);

		if(c[u] != -1) Answer(c[u], i, u);
		else c[u] = i;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...