# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|
1240481 | | Jer | 게임 (IOI14_game) | C++20 | | 0 ms | 328 KiB |
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1505;
int n, edges = 0, quest = 0;
struct unionFind
{
int par[MAXN], size[MAXN];
unionFind()
{
for (int i = 0; i < MAXN; i++)
par[i] = i, size[i] = 1;
}
int find(int x)
{
if (x == par[x])
return x;
return (par[x] = find(par[x]));
}
bool same(int a, int b) { return find(a) == find(b); }
void unite(int a, int b)
{
a = find(a), b = find(b);
if (size[b] > size[a])
swap(b, a);
par[b] = a;
size[a] += size[b];
}
};
unionFind uf;
void initialize(int N)
{
n = N;
}
int hasEdge(int u, int v)
{
quest++;
if (uf.same(u, v) or (edges == n - 2 and quest < (n * (n - 1)) / 2))
return 0;
edges++;
uf.unite(u, v);
return 1;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |