Pagini recente » Cod sursa (job #62060) | Cod sursa (job #1006535) | Cod sursa (job #221948) | Cod sursa (job #651456) | Cod sursa (job #2042854)
#include <fstream>
std::ifstream fi("disjoint.in");
std::ofstream fo("disjoint.out");
int parent[100000];
int N, M;
int k, x, y;
int check(int node)
{
if(parent[node] == node) return node;
else return parent[node] = check(parent[node]);
}
void unite(int x, int y)
{
parent[check(x)] = check(y);
}
int main()
{
fi>>N>>M;
for(int i=1; i<=N; ++i) parent[i] = i;
for(int i=1; i<=M; ++i)
{
fi>>k>>x>>y;
if(k==1) unite(x,y);
else if(check(x) == check(y)) fo<<"DA\n";
else fo<<"NU\n";
}
}