Pagini recente » Cod sursa (job #1273727) | Cod sursa (job #953956) | Cod sursa (job #23482) | Cod sursa (job #595959) | Cod sursa (job #2075063)
#include <fstream>
#include <vector>
#include <algorithm>
#define st second.first
#define dr second.second
#define cod first
using namespace std;
int t[100001],n,m,i,k,rx,ry;
pair <int , pair <int , int>> l[100001];
int rad(int x){
while(t[x]>0)
x = t[x];
return x;}
int main()
{
ifstream f("disjoint.in");
ofstream g("disjoint.out");
f >> n >> m;
for(i=0;i<n;i++)
f >>l[i].cod >> l[i].st >> l[i].dr;
for(i=0;i<=m;i++) t[i]=-1;
for(i=0;i<=n;i++){
rx = rad(l[i].st);
ry = rad(l[i].dr);
if(l[i].cod==1){
if(rx!=ry){
if(t[rx]<t[ry]){
t[rx]+=t[ry];
t[ry]=rx;}
else {
t[ry]+=t[rx];
t[rx]=ry;}
}}
else if(rx==ry) g << "DA\n"; else g << "NU\n";
}
return 0;
}