# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
349249 | 2021-01-17T09:03:09 Z | David_M | Game (IOI14_game) | C++14 | 0 ms | 0 KB |
#include<bits/stdc++.h> using namespace std; int a[1505]; queue <int> q[1505]; void initialize(int n){ for (int i=2; i<=n; i++)a[i]=1; } int hasEdge(int u, int v){ int e=0; if(a[u])swap(v, u); if(!a[u]){ a[v]--; if(!a[v]){ e=1; while(!q[v].empty()){ if(a[q[v].front()])a[q[v].front()]--; q[v].pop(); } } }else q[v].push(u),q[u].push(v); return e; }