Pagini recente » Cod sursa (job #2822967) | Cod sursa (job #1484056) | Cod sursa (job #1448841) | Cod sursa (job #208059) | Cod sursa (job #1134504)
#include <fstream>
#include <vector>
#define NMax 100001
using namespace std;
int N, M, v[NMax], x, y;
short op;
vector<int> vecini[NMax];
int main()
{
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
fin >> N >> M;
for(int i = 1 ; i <= N ; ++i)
v[i] = i;
for(int i = 1 ; i <= M ; ++i)
{
fin >> op >> x >> y;
if(op == 1)
{
y = v[y];
for(vector<int>::iterator it = vecini[y].begin() ; it != vecini[y].end() ; ++it)
{
v[*it] = x;
vecini[x].push_back(*it);
}
v[y] = x;
vecini[x].push_back(y);
}
else
{
if(v[x] == v[y])
fout << "DA\n";
else
fout << "NU\n";
}
}
fin.close();
fout.close();
return 0;
}