이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include "game.h"
using namespace std;
const int N = 1510;
int n, G[N][N], vis[N], r, c[N];
void initialize(int n)
{
::n = n;
r = n*(n-1)/2;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (i != j)
G[i][j] = 1;
}
}
}
void dfs(int u)
{
vis[u] = true;
for (int v = 0; v < n; ++v) {
if (!vis[v] && G[u][v] == 1)
dfs(v);
}
}
int hasEdge(int u, int v)
{
if (r-- <= n-1) {
for (int i = 0; i < n; ++i) vis[i] = false;
G[u][v] = G[v][u] = 0;
int cnt = 0;
for (int i = 0; i < n; ++i) {
if (!vis[i]) {
++cnt;
if (cnt > 1)
break;
dfs(i);
}
}
if (cnt > 1)
return G[u][v] = G[v][u] = 1;
return 0;
} else {
++c[u], ++c[v];
if (c[u] == n-1 || c[v] == n-1)
return 1;
return G[u][v] = G[v][u] = 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... |