Cod sursa(job #2391703)

Utilizator BlaugranasEnal Gemaledin Blaugranas Data 29 martie 2019 09:42:49
Problema Paduri de multimi disjuncte Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 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]>='0'&&r[o]<='9';o++)
  		s=s*10+r[o]-'0';
  	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++]='D',r[l++]='A',r[l++]='\n';
            else
                r[l++]='N',r[l++]='U',r[l++]='\n';
        else
            p[z]=y;
    }
    fwrite(r,1,l,stdout);
}