Submission #2214841
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0,i##_len=(n);i<i##_len;i++)
#define FOR(i,a,b) for(int i=(a);i<(b);i++)
#define ROF(i,a,b) for(int i=(a)-1;i>=(b);i--)
#define all(a) (a).begin(),(a).end()
#define rall(a) (a).rbegin(),(a).rend() //sortで大きい順
#define UNIQUE(v) v.erase(unique(all(v)),v.end())
#define SUM(a) accumulate(all(a),0)
#define pb push_back
#define fst first
#define snd second
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<string> vs;
typedef pair<int,int> pii;
typedef long long ll;
struct UnionFind{
vi data;
UnionFind(int size){
data.resize(size,-1);
//rep(i, size) data[i] = -1;
}
bool unite(int x,int y){
x = root(x);
y = root(y);
if(x != y){
if(data[y] < data[x]) swap(x,y);
data[x] += data[y];
data[y] = x;
}
return x != y;
}
bool find(int x, int y){
return root(x) == root(y);
}
int root(int x){
return data[x] < 0 ? x : data[x] = root(data[x]);
}
int size(int x){
return -data[root(x)];
}
void print(){
cout << "i :\t";
rep(i, data.size()) cout << i << "\t";
cout << endl;
cout << "data :\t";
rep(i, data.size()) cout << root(i) << "\t";
cout << endl;
}
};
main(){
int n,k,l; cin >> n >> k >> l;
struct UnionFind a(n), b(n);
rep(i,k){
int p,q; cin >> p >> q;
a.unite(p-1,q-1);
}
rep(i,l){
int r,s; cin >> r >> s;
b.unite(r-1,s-1);
}
//a.print();
//b.print();
map<pii,int> mp;
rep(i,n){
mp[pii(a.root(i),b.root(i))]++;
}
rep(i,n){
cout << mp[pii(a.root(i),b.root(i))];
if(i == n-1) cout << endl;
else cout << " ";
}
}
Submission Info
Submission Time |
|
Task |
D - Connectivity |
User |
kimitsu_emt |
Language |
C++14 (GCC 5.4.1) |
Score |
400 |
Code Size |
1773 Byte |
Status |
AC |
Exec Time |
216 ms |
Memory |
13568 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 |
1 ms |
256 KB |
subtask0_1.txt |
AC |
1 ms |
256 KB |
subtask0_2.txt |
AC |
1 ms |
256 KB |
subtask1_0.txt |
AC |
84 ms |
256 KB |
subtask1_1.txt |
AC |
216 ms |
13568 KB |
subtask1_10.txt |
AC |
88 ms |
256 KB |
subtask1_11.txt |
AC |
198 ms |
12032 KB |
subtask1_12.txt |
AC |
140 ms |
11520 KB |
subtask1_13.txt |
AC |
151 ms |
12672 KB |
subtask1_14.txt |
AC |
164 ms |
8832 KB |
subtask1_2.txt |
AC |
126 ms |
8704 KB |
subtask1_3.txt |
AC |
157 ms |
12544 KB |
subtask1_4.txt |
AC |
164 ms |
9728 KB |
subtask1_5.txt |
AC |
89 ms |
256 KB |
subtask1_6.txt |
AC |
193 ms |
11392 KB |
subtask1_7.txt |
AC |
143 ms |
12672 KB |
subtask1_8.txt |
AC |
163 ms |
12672 KB |
subtask1_9.txt |
AC |
152 ms |
6400 KB |