Cod sursa(job #1590372)
| Utilizator | Data | 4 februarie 2016 22:44:42 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 70 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.51 kb |
#include <iostream>
#include <fstream>
#define maxn 100005
using namespace std;
int main()
{int n,m,i,j,gr[maxn],c,x,y,h[maxn];
fstream f("disjoint.in",ios::in);
fstream g("disjoint.out",ios::out);
f>>n>>m;
for(i=1;i<=n;i++)
{gr[i]=0;h[i]=0;}
for(i=1;i<=m;i++)
{f>>c>>x>>y;
if(c==1)
{while(gr[x]!=0)
x=gr[x];
while(gr[y]!=0)
y=gr[y];
gr[x]=y;
}
else
{while(gr[x]!=0)
x=gr[x];
while(gr[y]!=0)
y=gr[y];
if(x==y)
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
}
g.close();
}
