# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1173852 | anonymousbunny | Keys (IOI21_keys) | C++20 | 0 ms | 0 KiB |
#include <bits/stdc++.h>
using namespace std;
#define maxn 300010
struct node{
int id, sz, par, is_deactivated;
vector <int> keys;
vector <int> rooms;
vector < pair<int,int> > edges; // pairs (key, room)
};
int print_flag;
vector <int> key_store[maxn], room_store[maxn];
vector < pair<int,int> > edge_store[maxn];
int sz[maxn], node_par[maxn], id[maxn];
int par[maxn], ans[maxn], is_deactivated[maxn];
int root (int v){
if (v==par[v]) return v;
return par[v]= root(par[v]);
}
void merge (int i, int j){
i= root(i);