# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
858303 | Trisanu_Das | Joker (BOI20_joker) | C++17 | 395 ms | 19072 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>
#define Mp make_pair
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;
const ll MXN = 2e5 + 10;
ll n, m, q;
ll Par[MXN], Sz[MXN], xr[MXN];
ll from[MXN], to[MXN], dp[MXN];
bool bip = true;
vector<pll> hist;
pll Find(ll x){
if(Par[x] == x) return Mp(x, xr[x]);
pll nw = Find(Par[x]);
nw.second ^= xr[x];
return nw;
}
void Union(ll x, ll y){
pll X = Find(x), Y = Find(y);
if(X.first == Y.first){
hist.push_back({-1, bip});
if(X.second == Y.second) bip = 0;
return;
}
if(Sz[X.first] < Sz[Y.first]) swap(X, Y);
xr[Y.first] = 1LL ^ X.second ^ Y.second;
Par[Y.first] = X.first, Sz[X.first] += Sz[Y.first];
hist.push_back({X.first, Y.first});
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |