Pagini recente » Cod sursa (job #562076) | Cod sursa (job #961470) | Cod sursa (job #2467914) | Cod sursa (job #2975853) | Cod sursa (job #1373352)
#include <fstream>
using namespace std;
ifstream f("disjoint.in");
ofstream g("disjoint.out");
#define NMAX 100010
int N,M,TT[NMAX];
void Init(){
for (int i = 1; i <= N; i++) {
TT[i] = i;
}
}
void Read(){
f>>N>>M;
}
int Search(int x){
if (TT[x] == 0)
return x;
TT[x] = Search(TT[x]);
return TT[x];
}
bool Merge(int x, int y){
x = Search(x);y = Search(y);
if (x == y)
return false;
TT[y] = x;
return true;
}
int main()
{
Read();
int x,y,cod;
for (int i = 1; i <= M; i++) {
f>>cod>>x>>y;
if(cod == 1){
Merge(x, y);
}else{
if (Search(x) == Search(y)) {
g<<"DA"<<"\n";
}else{
g<<"NU"<<"\n";
}
}
}
return 0;
}