Pagini recente » Cod sursa (job #19532) | Cod sursa (job #2859563) | Cod sursa (job #3254774) | Cod sursa (job #2291882) | Cod sursa (job #1387226)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int N,M,i,j,tip,x,yst,yfn,temp;
int a[100005][4];
void initializare();
int main()
{
f>>N>>M;
initializare();
for (int cont1=0;cont1<M;++cont1)
{
f>>tip>>x>>yfn;
if (x>yfn)
swap(x,yfn);
switch (tip)
{
case 1:
{
yst=a[yfn][0];
a[yfn][0]=a[x][0];
i=x;
while (a[i][2]!=0)
i=a[i][2];
a[i][2]=yst;
a[yst][1]=i;
/*for (i=1;i<=N;++i)
{
for (j=0;j<3;++j)
cout<<a[i][j]<<' ';
cout<<'\n';
}
cout<<"\n\n";*/
break;
}
case 2:
{
i=x;
while (a[i][2]!=0)
i=a[i][2];
j=yfn;
while (a[j][2]!=0)
j=a[j][2];
if (i==j)
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
}
}
f.close();g.close();
return 0;
}
void initializare()
{
for (i=1;i<=N;++i)
a[i][0]=a[i][3]=i;
}