Cod sursa(job #675603)

Utilizator beldeabogdanBogdan Beldea beldeabogdan Data 7 februarie 2012 20:09:48
Problema Paduri de multimi disjuncte Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <cstdio>
#include <algorithm>
using namespace std;
int v[10005],n,j,i,m,x,y,caz,mn,mx,vmx;;
int main() {
	freopen("disjoint.in","r",stdin);
	freopen("disjoint.out","w",stdout);
	scanf("%d %d",&m,&n);
	for (i=1;i<=m;i++) v[i]=i;
	for (i=1;i<=n;i++) {
		scanf("%d",&caz);
		if (caz==1) {
			scanf("%d %d",&x,&y);
			mn=min(x,y);
			mx=x+y-mn;
			vmx=v[mx];
			for (j=1;j<=n;j++) if (v[j]==vmx) v[j]=v[mn];
		}
		else if (caz==2) {
			scanf("%d %d",&x,&y);
			if (v[x]==v[y]) printf("DA\n");
			else printf("NU\n");
		}
	}
	return 0;
}