Pagini recente » Cod sursa (job #696684) | Cod sursa (job #2482647) | Cod sursa (job #223616) | Cod sursa (job #1521433) | Cod sursa (job #2515514)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
vector <int> v[100005];
int poz[100005];
void un(vector<int>&a,vector<int>&b){
for(int i=0;i<b.size();i++){
a.push_back(b[i]);
poz[b[i]]=poz[a[0]];
}
}
void _1(int x,int y){
if(v[poz[x]].size()>v[poz[y]].size())
un(v[poz[x]],v[poz[y]]);
else
un(v[poz[y]],v[poz[x]]);
}
void _2(int x,int y){
if(poz[x]==poz[y])
fout<<"DA"<<'\n';
else
fout<<"NU"<<'\n';
}
int n,m,i,j;
int c,x,y;
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++){
v[i].push_back(i);
poz[i]=i;
}
for(j=1;j<=m;j++){
fin>>c>>x>>y;
if(c==1)
_1(x,y);
else
_2(x,y);
}
return 0;
}