Pagini recente » Cod sursa (job #1300941) | Cod sursa (job #1334761) | Cod sursa (job #2775574) | Cod sursa (job #2043235) | Cod sursa (job #1797339)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int v[100001],n,m,t,x,y;
int root(int i)
{
while(i!=v[i]) v[i]=v[v[i]],i=v[i];
return i;
}
void unite(int p,int q)
{ v[root(p)]=root(q);
}
int main()
{f>>n>>m;int i;
for(i=1;i<=n;i++) v[i]=i;
for(i=1;i<=m;i++)
{f>>t>>x>>y;
if(t==1) unite(x,y);
else
{ if(root(x)==root(y)) g<<"DA\n";
else g<<"NU\n";
}
}
}