Pagini recente » Cod sursa (job #2015316) | Cod sursa (job #1524178) | Cod sursa (job #937429) | Cod sursa (job #996576) | Cod sursa (job #3192592)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int tata[100001];
int getroot(int nod)
{
while(tata[nod]>0)
{
nod=tata[nod];
}
return nod;
}
int main()
{
int n, m, i, x, y, t;
fin>>n>>m;
for(i=1;i<=n;i++)
{
tata[i]=-1;
}
for(i=1;i<=m;i++)
{
fin>>t>>x>>y;
int rx=getroot(x);
int ry=getroot(y);
if(t==1)
{
if(tata[rx]>tata[ry])
{
tata[ry]+=tata[rx];
tata[rx]=ry;
}
else
{
tata[rx]+=tata[ry];
tata[ry]=rx;
}
}
else
{
if(rx==ry)
{
fout<<"DA"<<"\n";
}
else
{
fout<<"NU"<<"\n";
}
}
}
}