Cod sursa(job #1038573)
| Utilizator | Data | 21 noiembrie 2013 19:14:12 | |
|---|---|---|---|
| Problema | Paduri de multimi disjuncte | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 1.02 kb |
#include <fstream>
using namespace std;
int n,m,i,a,b,c,v[100000],x,ok;
int main()
{
ifstream f("disjoint.in");
ofstream g("disjoint.out");
f>>n>>m;
for (i=1;i<=n;i++) v[i]=i;
for (i=0;i<m;i++)
{
f>>a>>b>>c;
if (a==1)
{
x=v[b];
v[b]=v[c];
v[c]=x;
}
if (a==2)
{
ok=0;
x=b;
while (v[b]!=x)
{
b=v[b];
if (b==c) ok=1;
}
if (ok==1)
{
g<<"DA";
g<<"\n";
}
else
{
g<<"NU";
g<<"\n";
}
}
}
f.close();
g.close();
return 0;
}
