Pagini recente » Cod sursa (job #1090736) | Cod sursa (job #1357312) | Cod sursa (job #1181895) | Diferente pentru problema/nim intre reviziile 8 si 23 | 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;
}