IOIBIN - Các thùng nước

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>
long g[50001],kq[50001],p,x,y,c,i,t;
long goc(long x)
  {
  long b;
  if(g[x]==x)
    return x;
  else
    {
    b=goc(g[x]);
    g[x]=b;
    return b;
    }
  }
void update(long x,long y)
  {
  long gx,gy;
  gx=goc(x);
  gy=goc(y);
  g[gy]=gx;
  }
void check(long x,long y)
  {
  long gx,gy;
  t++;
  gx=goc(x);
  gy=goc(y);
  if(gx==gy)
    kq[t]=1;
  else kq[t]=0;
  }
main()
{
for(i=1;i<=10000;i++)
  g[i]=i;
scanf("%ld",&p);
for(i=1;i<=p;i++)
  {
  scanf("%ld %ld %ld",&x,&y,&c);
  if(c==1) update(x,y);
  else check(x,y);
  }
for(i=1;i<=t;i++)
  printf("%ld\n",kq[i]);
//getch();
}        
           

Download