Pagini recente » Cod sursa (job #1281961) | Cod sursa (job #1690208) | Cod sursa (job #3184534) | Cod sursa (job #1849100) | Cod sursa (job #2421706)
#include <iostream>
using namespace std;
#include <iostream>
#include <fstream>
using namespace std;
int tata[500001];
int grad[500001];
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int find_tata(int nod)
{
if(tata[nod]==nod)
return nod;
tata[nod]=find_tata(tata[nod]);
return tata[nod];
}
int main()
{
int N,M,x,y,cod;
fin>>N>>M;
int i;
for(i=1;i<=N;i++)
{
tata[i]=i;
grad[i]=1;
}
for(i=0;i<M;i++)
{
fin>>cod>>x>>y;
int tata_x,tata_y;
tata_x=find_tata(x);
tata_y=find_tata(y);
if(cod==1)
{
if(tata_x<tata_y)
{
tata[tata_x]=tata_y;
grad[tata_y]+=grad[tata_x];
}
else
{
tata[tata_y]=tata_x;
grad[tata_x]+=grad[tata_y];
}
}
else
{
if(tata_x==tata_y)
fout<<"DA\n";
else fout<<"NU\n";
}
}
return 0;
}