Pagini recente » Borderou de evaluare (job #1569276) | Cod sursa (job #3251901) | Cod sursa (job #2762119) | Cod sursa (job #3131110) | Cod sursa (job #2502262)
#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],p,x,y,i;
int sef(int x) {
if(x==tata[x])
return x;
else
return tata[x]=sef(tata[x]);
}
void uniune(int x,int y) {
int sefx=sef(x);
int sefy=sef(y);
tata[sefx]=sefy;
}
int main()
{
fin>>n>>m;
for(i=1;i<=n;i++)
tata[i]=i;
for(i=1;i<=m;i++) {
fin>>p>>x>>y;
if(p==1)
uniune(x,y);
else
if(sef(x)==sef(y))
fout<<"DA\n";
else
fout<<"NU\n";
}
fin.close();
fout.close();
return 0;
}