Pagini recente » Cod sursa (job #2798826) | Cod sursa (job #3178734) | Cod sursa (job #1012396) | Cod sursa (job #987833) | Cod sursa (job #876103)
Cod sursa(job #876103)
#include<stdio.h>
//Constante
int const sz = (int)1e5+1;
//Functii
int getRoot(int node);
FILE *in,*out;
int elements, questions;
int type, node1, node2;
int mom[sz];
int main()
{
in=fopen("disjoint.in","rt");
out=fopen("disjoint.out","wt");
fscanf(in,"%d%d",&elements,&questions);
while(questions--)
{
fscanf(in,"%d%d%d",&type, &node1, &node2);
if(type==1)
mom[getRoot(node2)] = getRoot(node1);
else
fprintf(out,"%s\n", (getRoot(node1)==getRoot(node2))? "DA" : "NU");
}
fclose(in);
fclose(out);
return 0;
}
int getRoot(int node)
{
//return mom[node]? mom[node] = getRoot(mom[node]) : node;
if(mom[node])
return mom[node] = getRoot(mom[node]);
else
return node;
}