Pagini recente » Cod sursa (job #624772) | Cod sursa (job #1780048) | Cod sursa (job #1470138) | Cod sursa (job #2374479) | Cod sursa (job #1338724)
#include<stdio.h>
FILE *in, *out;
//definitions
//constants
const int sz = (int) 1e5+1;
//variables
int nodes, numberOperations;
int operation, node1, node2;
int tata[sz];
//functions
int getRoot(int node);
int main(void)
{
in = fopen("disjoint.in", "rt");
out = fopen("disjoint.out", "wt");
fscanf(in, "%d%d", &nodes, &numberOperations);
while(numberOperations--)
{
fscanf(in, "%d%d%d", &operation, &node1, &node2);
if(operation == 1)
{
int w = getRoot(node1);
int q = getRoot(node2);
if(w!=q)
tata[q] = w;
}
else
{
if(getRoot(node1) == getRoot(node2))
fprintf(out,"DA\n");
else
fprintf(out,"NU\n");
}
}
fclose(in);
fclose(out);
return 0;
}
int getRoot(int node)
{
if(tata[node])
{
tata[node] = getRoot(tata[node]);
return tata[node];
}
return node;
}