Pagini recente » Borderou de evaluare (job #1270013) | Borderou de evaluare (job #1129858) | Cod sursa (job #1800103) | Borderou de evaluare (job #189395) | Cod sursa (job #2501346)
#include <iostream>
#include <fstream>
#include <vector>
#define NMAX 100000
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,tata[NMAX+1];
int find(int x) {
if(x==tata[x])
return x;
else
return tata[x]=find(tata[x]);
}
void uniune(int x,int y) {
int sefx=find(x);
int sefy=find(y);
tata[sefx]=sefy;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
tata[i]=i;
for(int i=1;i<=m;i++) {
int p,x,y;
fin>>p>>x>>y;
if(p==1)
uniune(x,y);
else
if(find(x)==find(y))
cout<<"DA"<<endl;
else
cout<<"NU"<<endl;
}
return 0;
}