Pagini recente » Cod sursa (job #2464665) | Cod sursa (job #404138) | Cod sursa (job #1001100) | Cod sursa (job #1054522) | Cod sursa (job #2161474)
#include <fstream>
using namespace std;
ifstream fi ("disjoint.in");
ofstream fo ("disjoint.out");
int i,comp[100006],lg[100006],n,nr_op,op,n1,n2,tip;
int reprez(int nod)
{
if (comp[nod]==nod) return nod;
else return comp[nod]=reprez(comp[nod]);
}
void unire (int nod1,int nod2)
{
nod1=reprez(nod1);
nod2=reprez(nod2);
comp[nod1]=nod2;
}
int main()
{
fi>>n>>nr_op;
for (i=1;i<=n;i++)
{
comp[i]=i;
lg[i]=1;
}
for (op=1;op<=nr_op;op++)
{
fi>>tip>>n1>>n2;
if (n1>n2) swap (n1,n2);
if (tip==1) unire (reprez(n1),reprez(n2));
if (tip==2)
{
if (reprez(n1)==reprez(n2)) fo<<"DA"<<'\n';
else fo<<"NU"<<'\n';
}
}
return 0;
}