Cod sursa(job #658819)
| Utilizator | Data | 9 ianuarie 2012 17:16:56 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.71 kb |
#include <stdio.h>
int v[100010];
int main()
{
int n=0,m=0,i=0,a=0,b=0,c=0,min=0,max=0,j=0;
freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d%d",&n,&m);
for (i=0; i<n+1; ++i) v[i]=i;
for (i=0; i<m; ++i)
{
scanf("%d%d%d",&a,&b,&c);
if (a==1)
{
min=b;
max=b;
if (c<b) min=c;
if (c>b) max=c;
for (j=1; j<n+1; ++j)
if (v[j]==max)
v[j]=min;
}
else
{
if (v[b]==v[c])
printf("DA\n");
else
printf("NU\n");
}
}
return 0;
}
