Pagini recente » Cod sursa (job #2792515) | Cod sursa (job #2286000) | Cod sursa (job #2604963) | Cod sursa (job #607694) | Cod sursa (job #1827336)
#include <cstdio>
#include <iostream>
#include <queue>
#include <vector>
#include <fstream>
#include <algorithm>
#include <string>
#include <iomanip>
#include <cstring>
#include <map>
#include <iomanip>
#include <unordered_map>
#include <stack>
#include <bitset>
#include <cctype>
#define MOD 8192
#define pb push_back
#define INF 0x3f3f3f3f
#define INFLL (1LL*INF*INF)
#define N 2000000002LL
#define ll long long
#define NMAX 100005
#define LOGMAX 19
using namespace std;
typedef pair<int, int> pii;
ifstream fin("disjoint.in");
ofstream fout("disjoint.out");
int p[NMAX];
int findSet(int x) {
if(p[x]==x) return x;
return p[x]=findSet(p[x]);
}
bool inSameSet(int x, int y) {
return (findSet(x) == findSet(y));
}
void unionSet(int x, int y) {
if(!inSameSet(x,y)) {
int a=findSet(x);
int b=findSet(y);
p[a]=b;
}
}
int main() {
int n,m,i,op,x,y;
fin>>n>>m;
for(i=1;i<=n;++i) p[i]=i;
for(i=1;i<=m;++i) {
fin>>op>>x>>y;
if(op==1) {
unionSet(x,y);
}
else {
if(inSameSet(x,y)) fout<<"DA\n";
else fout<<"NU\n";
}
}
return 0;
}