Pagini recente » Cod sursa (job #1707578) | Cod sursa (job #1934308) | Cod sursa (job #1600823) | Cod sursa (job #2241202) | Cod sursa (job #1920055)
#include <fstream>
#define nmax 1000001
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int t[nmax], rx, ry, n, m, cerinta;
int rad(int x)
{
while(t[x]>0)
x=t[x];
return x;
}
void leaga(int x,int y)
{
t[x]+=t[y];
t[y]=x;
}
int main()
{ int i, x, y;
f>>n>>m;
for(i=1;i<=n;i++)
t[i]=-1;
for(i=1;i<=m;i++)
{ f>>cerinta>>x>>y;
rx=rad(x);
ry=rad(y);
if(cerinta==2)
{ if(rx==ry)
g<<"DA"<<'\n';
else
g<<"NU"<<'\n';
}
else
{ if(rx==ry) continue;
if(t[rx]<t[ry])
leaga(rx,ry);
else
leaga(ry,rx);
}
}
}