Pagini recente » Cod sursa (job #2559031) | Cod sursa (job #648491) | Cod sursa (job #2764528) | Cod sursa (job #2602793) | Cod sursa (job #2390606)
#include <iostream>
#include <fstream>
using namespace std;
int v1[1000], v2[1000];
void operatia1(int x, int y)
{
if(v2[x]>=v2[y])
{
v1[y]=x;
v2[x]+=v2[y];
}
else
{
v1[x]=y;
v2[y]+=v2[x];
}
}
int operatia2(int x)
{
if(v1[x]!=x)
v1[x]=operatia2(v1[x]);
return v1[x];
}
int main()
{
int N, M;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
f>>N>>M;
int cod, x, y;
for(int i=1; i<=N; i++)
{
v1[i]=i;
v2[i]=1;
}
for(int i=1; i<=M; i++)
{
f>>cod>>x>>y;
operatia2(x);
operatia2(y);
if(cod==1)
operatia1(x, y);
else if(v1[x]==v2[y])
g<<"DA"<<endl;
else
g<<"NU"<<endl;
}
}