Pagini recente » Cod sursa (job #1785295) | Cod sursa (job #845680) | Cod sursa (job #23329) | Cod sursa (job #1084433) | Cod sursa (job #613263)
Cod sursa(job #613263)
#include <stdio.h>
#define FIN fopen("disjoint.in","r")
#define FOU fopen("disjoint.out","w")
#define max(a,b) (a>b?a:b)
#define min(a,b) (a<b?a:b)
//SCRIE STEFAN
//STEFAN SCRIE
long p[100001],n,m;
long cauta(long x)
{
if(p[x]==0) return x;
p[x]=cauta(p[x]);
return p[x];
}
int main(void) {
char a;
long b,c,i;
FILE *fin=FIN,*fou=FOU;
fscanf(fin,"%li%li\n",&n,&m);
for(i=0;i<m;i++)
{
fscanf(fin,"%c%li%li\n",&a,&b,&c);
switch(a){
case '1':
p[cauta(max(b,c))]=cauta(min(b,c));
break;
case '2':
//o linie de pus
//inca una de pus
//mai avem linii de pus
switch(cauta(b)==cauta(c)){
case 0:
fprintf(fou,"NU\n");
break; //point
case 1:
fprintf(fou,"DA\n");
break; //point
}
break;
}
}
return 0;
}