Pagini recente » Cod sursa (job #640222) | Cod sursa (job #1193274) | Cod sursa (job #761802) | Cod sursa (job #1438062) | Cod sursa (job #3272162)
#include <fstream>
using namespace std;
ifstream cin("disjoint.in");
ofstream cout("disjoint.out");
int k, start[100001], l[2][100001];
void liste(int i, int j)
{
k++;
l[0][k]=j;
l[1][k]=start[i];
start[i]=k;
k++;
l[0][k]=i;
l[1][k]=start[j];
start[j]=k;
}
int main()
{
int n, m, c, x, y, sub[100001]={0}, man;
cin>>n>>m;
for(int i=1;i<=n;i++) sub[i]=i;
for(int i=1;i<=m;i++)
{
cin>>c>>x>>y;
if(c==1)
{
if(sub[x]!=sub[y])
{
liste(x, y);
sub[y]=sub[x];
man=start[y];
while(man)
{
sub[l[0][man]]=sub[x];
man=l[1][man];
}
}
}
else
{
if(sub[x]==sub[y]) cout<<"DA"<<'\n';
else cout<<"NU"<<'\n';
}
}
return 0;
}