Cod sursa(job #658482)
| Utilizator | Data | 8 ianuarie 2012 21:57:04 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
#include<iostream>
using namespace std;
int a,a1,a2,a3,a4,dad[100001];
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int find(int a0)
{if(dad[a0]!=a0)
{dad[a0]=find(dad[a0]);}
return dad[a0];}
int main()
{f>>a>>a1;
while(a--)
{dad[a]=a;}
while(a1--)
{f>>a2>>a3>>a4;
if(a2==1)
dad[find(a3)]=find(a4);
else
{if(find(a3)==find(a4))
g<<"DA"<<endl;
else
g<<"NU"<<endl;}}
f.close();
g.close();
return 0; }
