Pagini recente » Cod sursa (job #61119) | Cod sursa (job #1111539) | Cod sursa (job #2962793) | Cod sursa (job #1151380) | Cod sursa (job #355495)
Cod sursa(job #355495)
#include<stdio.h>
#include<algorithm>
#include<vector>
#include<list>
using namespace std;
int n,m;
vector < list <int> > v2(1);
list <int> v;
int main()
{
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
v.push_back(i);
v2.push_back(v);
v.clear();
}
for(int i=0;i<m;i++)
{
int op,x,y;
scanf("%d%d%d",&op,&x,&y);
if(op==1)
{
int i1=0,i2=0;
for(int j=1;j<=v2.size()&&((!i1)||(!i2));j++)
{
if(!i1&&find(v2[j].begin(),v2[j].end(),x)!=v2[j].end())
{
i1=j;
}
if(!i2&&find(v2[j].begin(),v2[j].end(),y)!=v2[j].end())
{
i2=j;
}
}
v2[i1].merge(v2[i2]);
v2.erase(v2.begin()+i2);
}
else
{
for(int j=1;j<=v2.size();j++)
{
int i1=0,i2=0;
if(!i1&&find(v2[j].begin(),v2[j].end(),x)!=v2[j].end())
{
i1=1;
}
if(!i2&&find(v2[j].begin(),v2[j].end(),y)!=v2[j].end())
{
i2=1;
}
if(i1&&i2)
{
printf("DA\n");
break;
}
if(i1!=i2)
{
printf("NU\n");
break;
}
}
}
}
return 0;
}