이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 1510;
int fat[N], sz[N];
int nedges[N][N];
int nn = 0;
void ini(int n) {
for (int i = 0; i < n; ++i) fat[i] = i, sz[i] = 1;
}
int fnd (int x) {
if (x == fat[x]) return x;
return fat[x] = fnd(fat[x]);
}
void uni (int x, int y) {
int fx = fnd(x), fy = fnd(y);
fat[fx] = fy;
sz[fy] += sz[fx];
for (int z = 0; z < nn; ++z) {
nedges[fy][z] += nedges[fx][z];
nedges[z][fy] += nedges[z][fx];
}
}
void initialize(int n) {
nn = n;
ini(n);
}
int hasEdge(int u, int v) {
if (nedges[fnd(u)][fnd(v)] == sz[fnd(u)] * sz[fnd(v)] - 1) {
uni(u, v);
return 1;
}
nedges[fnd(u)][fnd(v)]++;
nedges[fnd(v)][fnd(u)]++;
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... |