Submission #2215116
Source Code Expand
#include<iostream>
#include<utility>
#include<map>
using namespace std;
long root(long x,long *uf){
//cout << "x : " << x << " uf : " << uf[x] << "\n";
if(uf[x]==x){
return x;
}
else{
return uf[x] = root(uf[x],uf);
}
}
void ufmerge(long x,long y,long *uf,long *rank_uf){
x=root(x,uf);
y=root(y,uf);
if(x==y){
return;
}
else{
if(rank_uf[x]<rank_uf[y]){
uf[x]=y;
}
else{
uf[y]=x;
if(rank_uf[x]==rank_uf[y]) rank_uf[x]++;
}
}
}
int main(){
long N,K,L;
long p,q,r,s;
long road[200002];
long rank_road[200002];
long rail[200002];
long rank_rail[200002];
map<pair<long,long>,long> mp_count;
cin >> N >> K >> L;
for(long i=0;i<=N;i++){
road[i]=i;
rank_road[i]=1;
rail[i]=i;
rank_rail[i]=1;
}
for(long i=0;i<K;i++){
cin >> p >> q;
ufmerge(p,q,road,rank_road);
}
for(long i=0;i<L;i++){
cin >> r >> s;
ufmerge(r,s,rail,rank_rail);
}
for(long i=1;i<=N;i++){
root(i,road);
root(i,rail);
}
for(long i=1;i<=N;i++){
pair<long,long> p_temp=make_pair(road[i],rail[i]);
auto itr = mp_count.find(p_temp);
if(itr != mp_count.end()){
mp_count[p_temp]++;
}
else{
mp_count[p_temp]=1;
}
}
for(long i=1;i<=N;i++){
if(i!=1) cout << " ";
pair<long,long> p_temp=make_pair(road[i],rail[i]);
cout << mp_count[p_temp];
}
cout << "\n";
return 0;
}
Submission Info
Submission Time |
|
Task |
D - Connectivity |
User |
cross32768 |
Language |
C++14 (GCC 5.4.1) |
Score |
400 |
Code Size |
1718 Byte |
Status |
AC |
Exec Time |
276 ms |
Memory |
18304 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
400 / 400 |
Status |
|
|
Set Name |
Test Cases |
Sample |
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt |
All |
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_2.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt |
Case Name |
Status |
Exec Time |
Memory |
subtask0_0.txt |
AC |
2 ms |
4352 KB |
subtask0_1.txt |
AC |
2 ms |
6400 KB |
subtask0_2.txt |
AC |
2 ms |
4352 KB |
subtask1_0.txt |
AC |
84 ms |
4352 KB |
subtask1_1.txt |
AC |
276 ms |
18304 KB |
subtask1_10.txt |
AC |
89 ms |
4352 KB |
subtask1_11.txt |
AC |
251 ms |
16512 KB |
subtask1_12.txt |
AC |
154 ms |
16128 KB |
subtask1_13.txt |
AC |
161 ms |
17280 KB |
subtask1_14.txt |
AC |
174 ms |
13440 KB |
subtask1_2.txt |
AC |
130 ms |
13440 KB |
subtask1_3.txt |
AC |
165 ms |
17280 KB |
subtask1_4.txt |
AC |
178 ms |
14336 KB |
subtask1_5.txt |
AC |
91 ms |
4352 KB |
subtask1_6.txt |
AC |
240 ms |
15744 KB |
subtask1_7.txt |
AC |
153 ms |
17408 KB |
subtask1_8.txt |
AC |
173 ms |
17408 KB |
subtask1_9.txt |
AC |
164 ms |
11008 KB |