# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
959691 | 2024-04-08T19:57:59 Z | vjudge1 | Game (IOI14_game) | C++17 | 0 ms | 0 KB |
#include "game.h" #include <bits/stdc++.h> using namespace std; const int N = 1500; int deg[N], cnt[N]; void initialize(int n) { memset(cnt, 0, sizeof(cnt)); for (int i = 0; i < n; i++) { deg[i] = n; } } int hasEdge(int u, int v) { adj[u].erase(v); adj[v].erase(u); deg[u]--; deg[v]--; cnt[deg[u]]++; cnt[deg[v]]++; if (cnt[deg[u]] >= deg[u]) { cnt[deg[u]]--; cnt[deg[v]]--; deg[u]++; deg[v]++; adj[u].insert(v); adj[v].insert(u); return 1; } if (cnt[deg[v]] >= deg[v]) { cnt[deg[u]]--; cnt[deg[v]]--; deg[u]++; deg[v]++; adj[u].insert(v); adj[v].insert(u); return 1; } return 0; }