Cod sursa(job #1162049)
Utilizator | denis tdr denis_tdr | Data | 31 martie 2014 16:45:07 |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 40 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.63 kb |
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int n, m, t, x, y, m1, m2;
vector<int> v;
int main(){
ifstream f("disjoint.in");
ofstream g("disjoint.out");
f>>n>>m;
v.resize(n+1, 0);
for(int i=1;i<=n;i++)
v[i]=i;
while(m--){
f>>t>>x>>y;
if(t==1){
m1=min(v[x],v[y]);
m2=max(v[x],v[y]);
for(int j=1;j<=n;j++)
if(v[j]==m2)
v[j]=m1;
}else{
g<<(v[x]==v[y]?"DA\n":"NU\n");
//cout<<(v[x]==v[y]?"DA\n":"NU\n");
}
}
return 0;
}