# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1166040 | KG07 | Keys (IOI21_keys) | C++20 | 118 ms | 209460 KiB |
#include <bits/stdc++.h>
using namespace std;
int a[300003], s[300003];
bool b[300003], B[300003], C[300003];
vector<pair<int, int>> A[300003];
queue<int> p, P, q, Q[300003];
int find(int x){
if(!a[x])return x;
return a[x] = find(a[x]);
}
vector<int> find_reachable(vector<int> r, vector<int> u, vector<int> v, vector<int> c) {
int N = r.size();
int M = c.size();
for(int i = 0; i < M; i++){
A[u[i]+1].push_back(make_pair(v[i]+1, c[i]));
A[v[i]+1].push_back(make_pair(u[i]+1, c[i]));
}
int T = 20;
while(T--){
for(int t = 1; t <= N; t++){
if(a[t] || C[t])continue;
q.push(t);
while(!q.empty()){
int h = q.front();
q.pop();
if(find(h) != t){
a[t] = h;
C[find(t)] = true;
while(!q.empty())q.pop();
# | 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... |