Pagini recente » Diferente pentru home intre reviziile 411 si 410 | Cod sursa (job #153939) | Cod sursa (job #1220618) | Cod sursa (job #1593539) | Cod sursa (job #3037833)
#include <fstream>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int n,m;
int t[100005];
int rad(int val)
{
while(t[val]>0)
{
val=t[val];
}
return val;
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
t[i]=-1;
}
for(int i=1;i<=m;i++)
{
int op,x,y;
fin>>op>>x>>y;
if(op==1)
{
int rx = rad(x);
int ry = rad(y);
if(-t[rx]>-t[ry])
{
t[rx]+=t[ry];
t[ry]=x;
}
else
{
t[ry]+=t[rx];
t[rx]=y;
}
}
else
{
(rad(y)==rad(x)) ? fout<<"DA" : fout<<"NU";
fout<<'\n';
}
}
}