Pagini recente » Cod sursa (job #2990051) | Cod sursa (job #2654617) | Cod sursa (job #1367195) | Cod sursa (job #294109) | Cod sursa (job #1399060)
#include <stdio.h>
#include <fstream>
using namespace std;
int tata[100002],n,m;
ofstream out("disjoint.out");
int radacina( int x){
if(tata[x]==0) return x;
tata[x]=radacina(tata[x]);
return tata[x];
}
void uneste(int x, int y){
int rx=radacina(x), ry=radacina(y);
if(rx!=ry){
tata[rx]=y;
}
}
void gaseste( int x, int y){
if(radacina(x)==radacina(y)) out<<"DA\n";
else out<<"NU\n";
}
void citire(){
FILE * in;
in=fopen("disjoint.in","r");
fscanf(in,"%d%d",&n,&m);
int a,b,c;
for(int i=1;i<=m;i++){
fscanf(in,"%d%d%d",&a,&b,&c);
if(a==1) uneste(b,c);
else gaseste(b,c);
}
}
int main()
{
citire();
return 0;
}