Pagini recente » Cod sursa (job #1933737) | Monitorul de evaluare | Cod sursa (job #1925984) | Cod sursa (job #199767) | Cod sursa (job #2401403)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m,t[100001];
struct muchie
{
int x,y,c;
}e[100001];
bool cmp(muchie e1,muchie e2)
{
return(e1.c<e2.c);
}
int radacina(int x)
{
if(t[x]==0)
{
return x;
}
return radacina (t[x]);
}
bool verif(int x,int y)
{
return(radacina(x)==radacina(y));
}
void reuniune(int x,int y)
{
int rx=radacina(x);
int ry=radacina(y);
t[rx]=ry;
}
bool folosit[5014];
int main()
{
fin>>n>>m;
int i;
for(i=0;i<m;i++)
{
fin>>e[i].c>>e[i].x>>e[i].y;
if(e[i].c==1)
{
reuniune(e[i].x,e[i].y);
}
if(e[i].c==2)
{
if(verif(e[i].x,e[i].y))
fout<<"DA"<<"\n";
else fout<<"NU"<<"\n";
}
}
fin.close();
fout.close();
return 0;
}