# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
415531 | Pro_ktmr | Parachute rings (IOI12_rings) | C++17 | 2280 ms | 141600 KiB |
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 <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
#define rep(i, n) for(int (i)=0; (i)<(n); (i)++)
#define repi(i, a, b) for(int (i)=(a); (i)<(b); (i)++)
struct UnionFind{
int N;
vector<int> par, siz, dig;
int exc;
bool ok = true;
void init(int n, int _exc){
N = n;
par = vector<int>(N, -1);
siz = vector<int>(N, 1);
exc = _exc;
dig = vector<int>(N, 0);
}
int root(int a){
if(par[a] == -1) return a;
return par[a] = root(par[a]);
}
int unite(int a, int b){
if(a == exc || b == exc) return 1;
dig[a]++; dig[b]++;
ok &= (dig[a] <= 2 && dig[b] <= 2);
int ra = root(a), rb = root(b);
if(ra == rb){
ok = false;
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |