Pagini recente » Cod sursa (job #23702) | Cod sursa (job #1927327) | Cod sursa (job #2329580) | Cod sursa (job #1804663) | Cod sursa (job #2064908)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int parent[100001];
priority_queue<int> p,p1,p2;
int main()
{
int n,m,x,y,c,i;
fin>>n>>m;
for (i=1;i<=n;i++)
parent[i]=i;
for (i=1;i<=m;i++)
{
fin>>c>>x>>y;
if (c==1)
{
while (parent[x]!=x)
x=parent[x];
while (parent[y]!=y)
y=parent[y];
if (x>y)
parent[x]=y;
else parent[y]=x;
}
else if (c==2)
{
while (parent[x]!=x)
{
p1.push(x);
x=parent[x];
}
while (parent[y]!=y)
{
p2.push(y);
y=parent[y];
}
if (x==y)
fout<<"DA"<<'\n';
else fout<<"NU"<<'\n';
while (!p1.empty())
{
int element=p1.top();
parent[element]=x;
p1.pop();
}
while (!p2.empty())
{
int element=p2.top();
parent[element]=y;
p2.pop();
}
}
}
return 0;
}