Cod sursa(job #2002859)
| Utilizator | Data | 20 iulie 2017 23:26:46 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <cstdio>
#include <fstream>
#define NMax 1000053
using namespace std;
int ar[NMax];
int x,y,n,m,p;
int rad(int fr){
int x = fr;
while(ar[x]){
x = ar[x];
}
return x;
}
int main()
{
ifstream f("disjoint.in");
ofstream g("disjoint.out");
f >> n >> m;
for(int i = 1; i <= m; ++i){
f >> p >> x >> y;
if(p == 1){
ar[rad(y)] = rad(x);
}else{
if(rad(x) != rad(y)){
g << "NU" <<"\n";
}else
g << "DA" <<"\n";
}
}
return 0;
}
