Submission #1267586

#TimeUsernameProblemLanguageResultExecution timeMemory
1267586cmiucGame (IOI14_game)C++20
15 / 100
3 ms840 KiB
#include <iostream>
#include <vector>

#include "game.h"
using namespace std;
int Nn, r, dc[1505][1505], Sum[1505], k, rr;
vector<int> nei[1505];

void initialize(int N){
	Nn = N;
	r = (N * (N + 1)) / 2;
}

void update(int u){
	if (nei[u].size() != Nn - 2)
		return;
	int v = r - Sum[u] - u;
	dc[u][v] = dc[v][u] = 1;

	nei[u].push_back(v), Sum[u] += v;
	nei[v].push_back(u), Sum[v] += u;
	update(v);
}

int hasEdge(int u, int v){
	u++;
	v++;

	if (dc[u][v] == 1)
		return 1;

	nei[u].push_back(v), Sum[u] += v;
	nei[v].push_back(u), Sum[v] += u;

	for (int i=1;i<=Nn;i++)
		update(i);

	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...