# |
Author |
Problem |
Lang |
Verdict |
Time |
Memory |
Sent |
Judged |
|
143433175 |
Practice:
VVD4 |
1620E
- 9
|
C++17 (GCC 7-32)
|
Memory limit exceeded on test 4
|
202 ms
|
262144 KB
|
2022-01-20 17:40:04 |
2022-01-20 17:40:04 |
|
#include <bits/stdc++.h>
using namespace std;
// #define int long long
// int mod=1000000007;
int find(int n,vector<int> &par){
if(par[n]==n)return n;
return par[n]=find(par[n],par);
}
void solve(){
int n;
cin>>n;
// Input
vector<pair<int,int>> v;
for(int i=0;i<n;i++){
int x;cin>>x;
if(x==1){
int y;cin>>y;
v.push_back({-1,y});
}
else{
int a,b;cin>>a>>b;
v.push_back({a,b});
}
}
// Process
vector<int> par(500004);
for(int i=0;i<500004;i++)par[i]=i;
vector<int> ans;
for(int i=n-1;i>=0;i--){
if(v[i].first==-1)
ans.push_back(find(v[i].second,par));
else
par[v[i].first]=v[i].second;
}
// Answer
for(int i=ans.size()-1;i>=0;i--)cout<<ans[i]<<" ";
}
signed main(){
ios_base::sync_with_stdio(false); cin.tie(NULL);
int t;
// cin>>t;
t=1;
while(t--)solve();
}
Click to see test details