Pagini recente » Cod sursa (job #2784743) | Cod sursa (job #1434667) | Cod sursa (job #1410306) | Cod sursa (job #1449925) | Cod sursa (job #1401181)
#include <iostream>
#include <fstream>
#define DN 100005
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
int n,m,t[DN];
void read(){
f>>n>>m;
}
int getRoot(int node){
int root = node;
while( t[root] )
root = t[root];
while( t[node] ){
int nextNode = t[node];
t[node] = root;
node = nextNode;
}
return root;
}
void join(int x,int y){
int xRoot = getRoot(x);
t[ xRoot ] = y;
}
void solve(){
for(int op,x,y,i=1;i<=m;++i){
f>>op>>x>>y;
if(op == 1)
join(x,y);
else{
int xRoot = getRoot(x);
int yRoot = getRoot(y);
if( xRoot == yRoot )
g<<"DA\n";
else
g<<"NU\n";
}
}
}
int main()
{
read();
solve();
return 0;
}