Cod sursa(job #661922)
| Utilizator | Data | 15 ianuarie 2012 15:37:14 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 10 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.53 kb |
#include<fstream>
using namespace std;
int mult[100001],n;
void caz_1(int x, int y)
{int a,b;
a=mult[x]; b=mult[y];
for(int i=1;i<=n;i++)
if(mult[i]==a) mult[i]=b;
}
int main(){
int n, m, x, y, caz;
fstream f("disjoint.in",ios::in);
fstream g("disjoint.out",ios::out);
f>>n>>m;
for(int i=1;i<=n;i++) //initializare multimi
mult[i]=i;
for(int i=1;i<=m;i++)
{f>>caz>>x>>y;
if(caz==1) caz_1(x,y);
if(caz==2) {if(mult[x]==mult[y]) g<<"DA\n";
else g<<"NU\n";}
}
return 0;}
