Pagini recente » Cod sursa (job #1989803) | Cod sursa (job #632810) | Cod sursa (job #2540495) | Cod sursa (job #1142234) | Cod sursa (job #2423696)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
ifstream in("disjoint.in");
ofstream out("disjoint.out");
int main()
{
int n,m;
in>>n>>m;
vector <vector<int>> Graf(n+1);
vector <int> comp(n+1);
for(int i=1;i<=n;i++)
{
Graf[i].push_back(i);
comp[i]=i;
}
for(int i=1;i<=m;i++)
{
int tip,x,y;
in>>tip>>x>>y;
if(tip==1)
{
x=comp[x];
y=comp[y];
if(Graf[x].size()>Graf[y].size())
swap(x,y);
for(auto j: Graf[x])
{
Graf[y].push_back(j);
comp[j]=y;
j=0;
}
}
if(tip==2)
{
if(comp[x]==comp[y])
out<<"DA"<<"\n";
else
out<<"NU"<<"\n";
}
}
}