# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1084781 | abczz | Keys (IOI21_keys) | C++17 | 3099 ms | 42628 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 <vector>
#include <iostream>
#include <array>
#include <map>
#define ll long long
using namespace std;
ll n, m, f, cnt, A[300000], sz[300000], szout[300000], done[300000], P[300000];
vector <ll> V;
bool visited[300000];
map <ll, ll> keys[300000], edge[300000];
map <ll, vector<ll>> out[300000];
ll dsu(ll u) {
if (P[u] == u) return u;
else return P[u] = dsu(P[u]);
}
void merge(ll u, ll v) {
if (edge[u].size() < edge[v].size()) {
for (auto [x, y] : edge[u]) ++edge[v][dsu(x)];
swap(edge[u], edge[v]);
}
else {
for (auto [x, y] : edge[v]) ++edge[u][dsu(x)];
}
if (keys[u].size()+szout[v] < keys[v].size()+szout[u]) {
for (auto [x, y] : keys[u]) {
if (out[v].count(x)) {
# | 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... |