Submission #52156

#TimeUsernameProblemLanguageResultExecution timeMemory
52156aquablitz11Game (IOI14_game)C++14
15 / 100
3 ms868 KiB
#include <bits/stdc++.h> #include "game.h" using namespace std; const int N = 1510; int n, G[N][N], vis[N], r, c[N]; void initialize(int n) { ::n = n; r = n*(n-1)/2; for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i != j) G[i][j] = 1; } } } void dfs(int u) { vis[u] = true; for (int v = 0; v < n; ++v) { if (!vis[v] && G[u][v] == 1) dfs(v); } } int hasEdge(int u, int v) { if (r-- <= n-1) { for (int i = 0; i < n; ++i) vis[i] = false; G[u][v] = G[v][u] = 0; int cnt = 0; for (int i = 0; i < n; ++i) { if (!vis[i]) { ++cnt; if (cnt > 1) break; dfs(i); } } if (cnt > 1) return G[u][v] = G[v][u] = 1; return 0; } else { ++c[u], ++c[v]; if (c[u] == n-1 || c[v] == n-1) return 1; return G[u][v] = G[v][u] = 0; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...