#include "game.h"
#include <bits/stdc++.h>
using namespace std;
set<int> adj[1503];
int n;
void initialize(int _n) {
n = _n;
for(int i=0;i<n;++i) {
for(int j=0;j<n;++j) {
if(i!=j) {
adj[i].insert(j);
}
}
}
}
bool vis[1503];
int dfs(int s) {
if(vis[s]) return 0;
vis[s]=true;
int r=1;
for(auto u:adj[s]) {
r+=dfs(u);
}
return r;
}
int hasEdge(int u, int v) {
adj[u].erase(v);
adj[v].erase(u);
fill(vis, vis+1501, 0);
int toured = dfs(0);
cerr << toured << endl;
if (toured < n) {
// roll back
adj[u].insert(v);
adj[v].insert(u);
return 1;
}
return 0;
}
// 남은 그래프가 분리되려고 하면 멈추고 yes.
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |