Cod sursa(job #2166351)
| Utilizator | Data | 13 martie 2018 16:45:08 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <bits/stdc++.h>
using namespace std;
int p[100010],n,m;
int parent(int x)
{
if(p[x]==x) return x;
else {
p[x]= parent(p[x]);
return p[x];
}
}
void upgrade(int x,int y)
{
}
int main()
{
ifstream in("disjoint.in");
ofstream out("disjoint.out");
in>>n>>m;
for(int i=1;i<=n;i++) p[i]=i;
for(int i=1;i<=m;i++)
{
int x,y,q;
in>>q>>x>>y;
if(q==1) p[parent(x)]=parent(y);
if(q==2)
if(parent(x)==parent(y))out<<"DA\n";
else out<<"NU\n";
}
return 0;
}
