Pagini recente » Cod sursa (job #2211083) | Cod sursa (job #862352) | Cod sursa (job #192816) | Cod sursa (job #1001547) | Cod sursa (job #1605831)
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
using namespace std;
vector <int> v[100001];
int vec[100001];
int main()
{
int n, m, i, cod, x, y, p;
FILE *fi, *fo;
fi = fopen("disjoint.in", "r");
fo = fopen("disjoint.out", "w");
fscanf(fi, "%d%d", &n, &m);
for(i=1; i<=n; i++) {
vec[i]=i;
v[i].push_back(i);
}
for(p=1; p<=m; p++) {
fscanf(fi, "%d%d%d", &cod, &x, &y);
if(cod==1) {
for(i=v[vec[y]].size()-1; i>=0; i--) {
vec[v[vec[y]][i]]=vec[x];
v[vec[x]].push_back(v[vec[y]][i]);
v[vec[y]].pop_back();
}
}
else {
while(vec[vec[x]]!=x)
x=vec[x];
while(vec[vec[y]]!=y)
y=vec[y];
if(x==y)
fprintf(fo, "DA\n");
else
fprintf(fo, "NU\n");
}
}
fclose(fi);
fclose(fo);
return 0;
}