Submission #960196

#TimeUsernameProblemLanguageResultExecution timeMemory
960196vjudge1게임 (IOI14_game)C++17
15 / 100
2 ms2392 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; const int N = 1500; int n, cnt, root; bitset<N> adj[N], edge[N]; void dfs(int x) { if (x == root) return; if (adj[x].count() == 1) { if (root == -1 && cnt == n-1) { root = x; return; } cnt++; int y = 0; while (!adj[x][y]) y++; adj[x][y] = adj[y][x] = 0; edge[x][y] = edge[y][x] = 1; dfs(y); } } void initialize(int nn) { n = nn; cnt = 0; root = -1; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (i == j) continue; adj[i][j] = 1; } } } int hasEdge(int u, int v) { if (edge[u][v]) return 1; adj[u][v] = adj[v][u] = 0; dfs(u); dfs(v); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...