Pagini recente » Cod sursa (job #1363920) | Cod sursa (job #2230397) | Cod sursa (job #418448) | Cod sursa (job #1363924) | Cod sursa (job #2397260)
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
std::ifstream f("disjoint.in");
std::ofstream g("disjoint.out");
int searchM(std::list<int> g, int x)
{
std::list <int> :: iterator it;
for(it = g.begin(); it != g.end(); ++it)
if (*it == x)
return 1;
return 0;
}
void printM(std::list<int> g)
{
std::list <int> :: iterator it;
for(it = g.begin(); it != g.end(); ++it)
std::cout<<*it<<" ";
std::cout<<std::endl;
}
int main()
{
int n, m, cod, x, y, i, j, l;
f>>n>>m;
std::vector <std::list <int>> multimi;
for (i = 0; i < n; i++)
{
std::list <int> a;
a.push_back(i + 1);
multimi.push_back(a);
}
for(l = 0; l < m; l++)
{
f>>cod>>x>>y;
if (cod == 1)
{
for (i = 0; i < n; i++)
if (searchM(multimi[i], x) == 1)
for (j = i + 1; j < n; j++)
if (searchM(multimi[j], y) == 1)
{
multimi[i].merge(multimi[j]);
multimi[j] = multimi[i];
}
}
else
{
for (i = 0; i < n; i++)
if (searchM(multimi[i], x) == 1 && searchM(multimi[i], y) == 1)
{
cod = 0;
g<<"DA"<<std::endl;
break;
}
if (cod > 0)
g<<"NU"<<std::endl;
}
/*
for(i = 0; i < n; i++)
{
std::cout<<i<<": ";
printM(multimi[i]);
}
std::cout<<std::endl;
*/
}
f.close();
g.close();
return 0;
}