Pagini recente » Cod sursa (job #3280180) | Cod sursa (job #1258558) | Cod sursa (job #2198740) | Cod sursa (job #2753085) | Cod sursa (job #2390717)
#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 cauta(int x)
{
if(v1[x]!=x)
v1[x]=cauta(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;
cauta(x);
cauta(y);
if(cod==1)
operatia1(v1[x], v1[y]);
else if(v1[x]==v1[y])
g<<"DA"<<"\n";
else
g<<"NU"<<"\n";
}
}