#pragma GCC optimize ("03,unroll-loops")
#include <bits/stdc++.h>
#include "game.h"
using namespace std;
int const MAX=1505;
unordered_set<int>vecF[MAX];
unordered_set<int>candT[MAX];
int muchie;
bool activ[MAX];
void initialize(int n){
int i,j;
for(i=0;i<n;++i)
for(j=0;j<n;++j)
if(i!=j)
vecF[i].insert(j);
}
int hasEdge(int u, int v){
++muchie;
vecF[u].erase(v);
vecF[v].erase(u);
if(muchie==1){
activ[u]=activ[v]=1;
for(auto vec : vecF[u])
candT[vec].insert(u);
for(auto vec : vecF[v])
candT[vec].insert(v);
return 1;
}
if(activ[u] || activ[v]){
if(activ[v])
swap(u,v);
candT[v].erase(u);
if(candT[v].empty()){
activ[v]=1;
for(auto vec : vecF[v])
candT[vec].insert(v);
return 1;
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |