Cod sursa(job #3362137)
| Utilizator | Data | 3 august 2026 12:10:15 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <iostream>
#include <fstream>
using namespace std;
const int N=1e5+5;
int dsu[N],n,q;
int t(int nod){
if(!dsu[nod]||dsu[nod]==nod)return nod;
return dsu[nod]=t(dsu[nod]);
}
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
fin>>n>>q;
int x,c,y;
while(q--){
fin>>c>>x>>y;
x=t(x);
y=t(y);
if(c==1){
dsu[y]=x;
}
else{
if(x==y)fout<<"DA\n";
else fout<<"NU\n";
}
}
fin.close();
fout.close();
return 0;
}
