Pagini recente » Cod sursa (job #1260744) | Cod sursa (job #661490) | Cod sursa (job #861738) | Cod sursa (job #63887) | Cod sursa (job #442746)
Cod sursa(job #442746)
#include <fstream>
#include <vector>
#include <list>
#include <iostream>
using namespace std;
int main(){
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int n,m;in>>n>>m;
vector<vector<int> > king(n);
vector<int> sclav(n);
for(int i=0;i<n;i++){
sclav[i]=i;
king[i].push_back(i);
}
for(int i=0;i<m;i++){
int t,x,y;
in>>t>>x>>y;x--;y--;
if(t==1){
if(king[sclav[y]].size()>king[sclav[x]].size())
swap(x,y);
vector<int>& loser=king[sclav[y]];
vector<int>& winner=king[sclav[x]];
for(int i=0;i<loser.size();i++){
sclav[loser[i]]=sclav[x];
}
winner.insert(winner.end(),loser.begin(),loser.end());
}else{
if(sclav[x]==sclav[y]) out<<"DA\n";
else out<<"NU\n";
}
}
}