This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
#define maxn 1505
int n;
int vis[maxn];
int edge[maxn][maxn];
vector<int> dst, src;
void gentree() {
int i,a,b;
for(i=1;i<=n;i++) dst.push_back(i);
random_shuffle(dst.begin(),dst.end());
src.push_back(dst[0]);
for(i=1;i<n;i++) {
a = src[rand()%src.size()];
b = dst[i];
src.push_back(b);
edge[a][b] = edge[b][a] = 1;
}
}
void dfs(int x) {
vis[x] = 1;
for(int i=0;i<n;i++) if(!vis[i] && edge[x][i]) dfs(i);
}
bool check(int x,int y) {
memset(vis,0,sizeof(vis));
dfs(x);
if(vis[y]) return 1;
return 0;
}
void initialize(int N) {
n = N;
if(n>80) gentree();
else memset(edge,1,sizeof(edge));
}
int hasEdge(int u, int v) {
if(n>80) return edge[u][v];
edge[u][v] = edge[v][u] = 0;
if(!check(u,v)) edge[u][v] = edge[v][u] = 1;
return edge[u][v];
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |