Submission #713453

#TimeUsernameProblemLanguageResultExecution timeMemory
713453Spade1게임 (IOI14_game)C++14
0 / 100
1 ms596 KiB
#include <bits/stdc++.h> #define pii pair<int, int> #include "game.h" //#include "grader.cpp" using namespace std; const int maxN = 2000; set<int> s[maxN]; map<pii, bool> mp; bool mark[maxN]; void initialize(int n) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j) continue; s[i].insert(j); s[j].insert(i); } } } void dfs(int i) { if (mark[i]) return; mark[i] = 1; for (auto j : s[i]) { if (s[i].size() == 1) mp[{min(i, j), max(i, j)}]; s[i].erase(j); s[j].erase(i); if (s[j].size() == 1) dfs(j); } } int hasEdge(int u, int v) { if (u > v) swap(u, v); if (mp.count({u, v})) return 1; s[u].erase(v); s[v].erase(u); memset(mark, 0, sizeof(mark)); if (s[u].size() == 1) dfs(u); memset(mark, 0, sizeof(mark)); if (s[v].size() == 1) dfs(v); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...