Cod sursa(job #1051596)
Utilizator | Data | 10 decembrie 2013 12:19:25 | |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
using namespace std;
int main(){
ifstream f("disjoint.in");
ofstream cout("disjoint.out");
int n=0,m=0;f>>n>>m;
int V[100000];
for(int i=0;i<n;i++){
V[i]=i;
}
int x,y,op;
for(int i=0;i<m;i++){
f>>op>>x>>y;
x--;y--;
while(x!=V[x]){
x=V[x];
}
while(y!=V[y]){
y=V[y];
}
if(op==1){
V[y]=x;
}else{
if(x==y){
cout<<"DA"<<'\n';
}else{
cout<<"NU"<<'\n';
}
}
}
return 0;
}