Pagini recente » Cod sursa (job #2154783) | Cod sursa (job #2729632) | Cod sursa (job #2895693) | Cod sursa (job #2468818) | Cod sursa (job #2802174)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
void disjoint(istream & in, ostream & out) {
int n, m;
in >> n >> m;
vector< int > tata(n + 1);
for(int i = 1; i < tata.size(); i++) {
tata[i] = i;
}
for(int i = 0; i < m; i++) {
int tip, nod1, nod2;
in >> tip >> nod1 >> nod2;
if(tip == 1){
tata[nod1] = tata[nod2];
}
else{
int tata1 = nod1, tata2 = nod2;
while(tata[tata1] != tata1){
tata1 = tata[tata1];
}
while(tata[tata2] != tata2){
tata2 = tata[tata2];
}
if(tata1 == tata2){
out << "DA\n";
}
else{
out << "NU\n";
}
}
}
}
void disjointDriver() {
// Citire
ifstream in ("disjoint.in");
ofstream out("disjoint.out");
disjoint(in, out);
}
int main() {
// Se apeleaza functia corespunzatoare problemei
disjointDriver();
return 0;
}