QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#524093 | #5672. Connectivity Problem | ucup-team3699# | ML | 0ms | 3576kb | C++14 | 741b | 2024-08-19 10:18:27 | 2024-08-19 10:18:29 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
const int N = 10005;
int dsu[N];
int Find(int x){
if(dsu[x] < 0)
return x;
return dsu[x] = Find(dsu[x]);
}
bool Union(int x, int y){
x = Find(x);
y = Find(y);
if(x == y){
return 0;
}
if(dsu[x] > dsu[y]){
swap(x, y);
}
dsu[x] += dsu[y];
dsu[y] = x;
return 1;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin >> n;
for(int i = 1; i <= n; i++){
dsu[i] = -1;
}
int u, v;
for(int i = 1; i <= n; i++){
cin >> u >> v;
if(Union(u, v)){
cout << "N\n";
}else{
cout << "Y\n";
}
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3576kb
input:
12 3 4 4 9 8 1 2 3 5 6 2 9 5 9 7 3 4 8 5 6 1 8 6 1
output:
N N N N N Y N N N Y Y Y
result:
ok 12 lines
Test #2:
score: -100
Memory Limit Exceeded
input:
100 26 39 2 21 4 17 2 16 12 19 27 0 8 43 10 12 6 29 5 9 19 32 13 47 13 36 3 6 13 18 9 40 11 40 29 16 7 24 10 35 19 41 6 24 28 21 26 35 23 47 2 30 19 17 10 6 22 6 15 25 19 11 2 8 11 25 14 23 27 1 1 16 16 0 23 34 2 25 10 17 3 35 23 37 13 0 22 7 27 29 15 13 10 5 18 40 28 46 19 0 23 40 4 46 19 3 20 39 1...