Cod sursa(job #2806836)
| Utilizator | Data | 23 noiembrie 2021 01:30:25 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 40 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.65 kb |
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
#define nmax 100010
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int r[nmax];
int main()
{ int n,m,op,x,y;
f>>n>>m;
for(int i=1; i<=n; i++)
r[i]=i;
for(int j=0; j<m; j++){
f>>op>>x>>y;
if(op==1){
int r1=r[x];
int r2=r[y];
for(int k=1; k<=n; k++){
if(r[k]==r2) r[k]=r1;
}
}
else {
if(r[x]==r[y]) g<<"DA\n";
else g<<"NU\n";
}
}
f.close();
g.close();
return 0;
}
