제출 #1267527

#제출 시각아이디문제언어결과실행 시간메모리
1267527cmiuc게임 (IOI14_game)C++20
42 / 100
1093 ms5420 KiB
#include <iostream>
#include <vector>

#include "game.h"
using namespace std;
int Nn, cnt[1505], blocked[1505][1505], seen[1505], cur = 1, ver;
vector<int> nei[1505];

void initialize(int N){
	Nn = N;
	for (int i=1;i<=N;i++)
		for (int j=1;j<=N;j++)
			if (i != j)
				nei[i].push_back(j);
}

void dfs(int u){
	seen[u] = cur, ver++;
	for (int i : nei[u])
		if (!blocked[i][u] and seen[i] != cur)
			dfs(i);
}

int hasEdge(int u, int v){
	u++;
	v++;
	blocked[u][v] = blocked[v][u] = 1;
	cur++;
	ver = 0;
	dfs(1);

	if (ver == Nn)
		return 0;
	blocked[u][v] = blocked[v][u] = 0;
	return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...