Cod sursa(job #1922867)
| Utilizator | Data | 10 martie 2017 19:21:05 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include <fstream>
using namespace std;
ifstream f ("disjoint.in");
ofstream t ("disjoint.out");
int rad[100010],n,q;
int main()
{
f>>n>>q;
for (int i=1;i<=n;++i)
rad[i]=i;
for (int aux,type,x,y;q;--q){
f>>type>>x>>y;
while (x!=rad[x]) aux=rad[rad[x]],rad[x]=aux,x=aux;
while (y!=rad[y]) aux=rad[rad[y]],rad[y]=aux,y=aux;
if (type==1)
rad[x]=y;
else
if (x==y)
t<<"DA\n";
else
t<<"NU\n";
}
return 0;
}
