Cod sursa(job #1316541)
Utilizator | Dinu Radu RaduGabriel2012 | Data | 13 ianuarie 2015 21:43:19 |
---|---|---|---|
Problema | Paduri de multimi disjuncte | Scor | 10 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int n,m,t,dad[100005];
int Set(int x)
{
if (dad[x])
{dad[x]=Set(dad[x]);
return x;
}
else return x;
}
int main()
{ int i,s1,s2;
f>>n>>m;
for(i=1;i<=m;i++)
{ f>>t>>s1>>s2;
if (t==1) dad[Set(s2)]=Set(s1);
else
if (Set(s2)==Set(s1)) g<<"DA\n";
else g<<"NU\n";
}
return 0;
}