Cod sursa(job #2420907)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 13 mai 2019 16:08:25
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.58 kb
#include<cstdio>
#define M 6000000
#define N 100001
int n,m,y,z,p[N],o=-1,l;
char r[M];
inline int A()
{
  	int s=0;
  	for(o++;r[o]>47;o++)
  		s=s*10+r[o]-48;
  	return s;
}
int main()
{
    freopen("disjoint.in","r",stdin),freopen("disjoint.out","w",stdout),fread(r,1,M,stdin),n=A(),m=A();
    while(m--)
	{
		for(n=A(),y=A(),z=A();p[y];y=p[y]);
		for(;p[z];z=p[z]);
		if(n==2)
            if(y==z)
                r[l++]=68,r[l++]=65,r[l++]=10;
            else
                r[l++]=78,r[l++]=85,r[l++]=10;
        else
            p[z]=y;
    }
    fwrite(r,1,l,stdout);
}