Pagini recente » Cod sursa (job #1743802) | Cod sursa (job #498396) | Cod sursa (job #249274) | Cod sursa (job #1286760) | Cod sursa (job #2696217)
#include <iostream>
#include <fstream>
#include <vector>
#define N 100002
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n, m, tip, a, b;
vector <int> P;
int radacina(int nod)
{
int rad=nod, aux;
while(P[rad]!=rad)
rad=P[rad];
while(nod!=rad)
{
aux=P[nod];
P[nod]=rad;
nod=aux;
}
return rad;
}
void unire(int nod1, int nod2)
{
P[P[nod2]]=P[nod1];
}
int main()
{
fin>>n>>m;
for(int i=0;i<=n;i++)
P.push_back(i);
for(int i=1;i<=m;i++)
{
fin>>tip;
fin>>a>>b;
if(tip==1)
{
if(radacina(a)!=radacina(b))
unire(a,b);
}
else
{
if(radacina(a)==radacina(b))
fout<<"DA"<<'\n';
else
fout<<"NU"<<'\n';
}
}
fin.close();
fout.close();
return 0;
}