Pagini recente » Cod sursa (job #345212) | Cod sursa (job #2173660) | Cod sursa (job #2506230) | Cod sursa (job #741968) | Cod sursa (job #2397254)
#include <fstream>
#include <vector>
using namespace std;
int main()
{
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int n,m,cod,x,y,k=0,nr1,nr2;
f>>n>>m;
int comp[n];
vector< vector <int> > nod_comp(n+1);
vector<int>::iterator ptr;
for(int i=1;i<=n;i++) {
comp[i]=i;
nod_comp[i].push_back(i);
}
for(int i=1;i<=m;i++)
{
f>>cod>>x>>y;
if(cod==1)
{
if(nod_comp[comp[x]].size() > nod_comp[comp[y]].size())
{nr1=comp[x];
nr2=comp[y];
}
else {
nr1=comp[y];
nr2=comp[x];
}
for(ptr = nod_comp[nr2].begin(); ptr != nod_comp[nr2].end(); ++ptr)
{
nod_comp[nr1].push_back(*ptr);
comp[*ptr]=nr1;
}
}
else
{
if(comp[x]==comp[y]) g<<"DA"<<"\n";
else g<<"NU"<<"\n";
}
}
return 0;
}