Cod sursa(job #233388)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 17 decembrie 2008 17:47:52
Problema Paduri de multimi disjuncte Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include<cstdio>
#include<cstdlib>
using namespace std;
int n,c[100001],m,x,a,b;
 int max(int a,int b)
 {if(a>b) return a;
  return b;}
int min(int a,int b)
{if(a>b) return b;
return a;}
int main()
{     freopen("disjoint.in","r",stdin);
freopen("disjoint.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=1;i<=n;i++) c[i]=i;
for(;m;m--) {scanf("%d %d %d",&x,&a,&b);
                if(x==1) {int aux=min(c[a],c[b]);
                           int aux2=max(c[a],c[b]);
                           for(int i=1;i<=n;i++)
                           if(c[i]==aux2) c[i]=aux;
                           }
                else {if(c[a]==c[b]) printf("DA \n");
                         else printf("NU \n");}

                            }


      return 0;
}