Submission #488712

#TimeUsernameProblemLanguageResultExecution timeMemory
488712Drew_Game (IOI14_game)C++17
15 / 100
1 ms332 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;

#define ii pair<int, int>

constexpr int MAX = 1507;

int node, ctr, edge;
int fq[MAX] = {};
map<ii, bool> memo;

void initialize(int n) {
	node = n; ctr = edge = 0;
	memo.clear();
	for (int i = 1; i <= n; ++i)
		fq[i] = 0;
}


int hasEdge(int u, int v) {
	if (u > v)
		swap(u, v);
	assert(!memo.count({u, v}));
	memo[{u, v}] = true;

	ctr++;
	fq[u]++, fq[v]++;

	if (fq[u] == node-1 || fq[v] == node-1)
	{
		edge++;
		return 1;
	}

	if (ctr-1 + node - 1 - edge == node * (node - 1) / 2)
	{
		edge++;
		return 1;
	}

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