Pagini recente » Cod sursa (job #2155416) | Monitorul de evaluare | Cod sursa (job #3205314) | Cod sursa (job #3164247) | Cod sursa (job #1442767)
#include<iostream>
#include<fstream>
using namespace std;
int N,M,i,j,tip,x,yst,yfn,temp;
int a[100005][4];
void initializare();
int main()
{
ifstream f("disjoint.in");
ofstream g("disjoint.out");
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;
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;
}