Pagini recente » Cod sursa (job #3180977) | Cod sursa (job #2914660) | Cod sursa (job #2173786) | Cod sursa (job #1958704) | Cod sursa (job #2152793)
#include <fstream>
#define MAXN 100005
using namespace std;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int dad[MAXN];
int father(int node) {
if (node != dad[node]) {
dad[node] = father(dad[node]);
}
return dad[node];
}
inline void Update(int a, int b) {
int v1 = father(a);
int v2 = father(b);
dad[v1] = v2;
}
string Query(int a, int b) {
int v1 = father(a);
int v2 = father(b);
if (v1 == v2)
return "DA";
return "NU";
}
void Read() {
int N, M, tip, a, b;
fin >> N >> M;
for (int i = 1; i <= N; i++)
dad[i] = i;
while (M--) {
fin >> tip >> a >> b;
if (tip == 1) {
Update(a, b);
}
else if (tip == 2)
fout << Query(a, b) << "\n";
}
}
int main () {
Read();
fin.close(); fout.close(); return 0;
}