Submission #713455

#TimeUsernameProblemLanguageResultExecution timeMemory
713455Spade1Game (IOI14_game)C++14
15 / 100
4 ms724 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 (s[i].empty()) return; set<int> mem; auto it = s[i].begin(); while (it != s[i].end()) { int j = *it; if (s[i].size() == 1) mp[{min(i, j), max(i, j)}] = 1; s[i].erase(it++); 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); if (s[u].size() == 1) dfs(u); 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...