Pagini recente » Cod sursa (job #765029) | Cod sursa (job #2708807) | Cod sursa (job #2879441) | Cod sursa (job #2211703) | Cod sursa (job #1069214)
#include <fstream>
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <string.h>
#include <queue>
#include <math.h>
#include <set>
#define min(a,b) ((a<b)?a:b)
#define max(a,b) ((a<b)?b:a)
#define abs(a) ((a<0)?-a:a)
#define REP(i,a,b) \
for (int i=a; i<=b; i++)
#define INF 10000000000001
using namespace std;
#ifndef TEST
ifstream fin ("disjoint.in");
ofstream fout ("disjoint.out");
#else
ifstream fin ("input.txt");
ofstream fout ("output.txt");
#endif
#define MAXN 100000
#define pb push_back
#define mp make_pair
typedef long long ll;
typedef pair<int,int> pp;
int n,m;
int a[MAXN];
int get_parent(int x)
{
if (a[x] == x) return x;
a[x] = get_parent ( a[x]);
return a[x];
}
int main()
{
fin>>n>>m;
for (int i=0; i<n; i++)
a[i]=i;
for (int i=0; i<m; i++)
{
int x,y,z;
fin>>x>>y>>z;
y--;
z--;
switch (x)
{
case 1:
a[get_parent(y)] = get_parent(z);
break;
case 2:
if (get_parent(y)==get_parent(z)) fout<<"DA\n";
else fout<<"NU\n";
}
}
return 0;
}