Cod sursa(job #7323)

Utilizator crawlerPuni Andrei Paul crawler Data 21 ianuarie 2007 13:27:01
Problema Pachete Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasa a 10-a Marime 0.83 kb
#include <stdio.h>

long C[50001],m[50001], D;

int este(long a,long b)
 {
   if(m[a]==m[b])
    return 0;

   if(C[a]==C[b])
    return 1;
   
   return 0;
 }


void baga(long a,long b)
 {
   m[b]=m[a];
   --D;
 }

int main()
 {
   freopen("pachete.in","r",stdin);
   freopen("pachete.out","w",stdout);

   register long i,j,n,x,y,a,b;

   scanf("%ld",&n);
   D=n;

   scanf("%ld%ld",&a,&b);

   for(i=1;i<=n;++i)
    {
     scanf("%ld%ld",&x,&y);
     if(x-a>0 && y-b>=0)
      C[i]=1;
     if(x-a<=0 && y-b>0)
      C[i]=2;
     if(x-a<0 && y-b<=0)
      C[i]=3;
     if(x-a>=0 && y-b<0)
      C[i]=4;
    }

   for(i=1;i<=n;++i)
    m[i]=i;




   for(i=1;i<=n;++i)
    for(j=1;j<=n;++j)
     if(este(i,j))
      {
       baga(i,j);
      }

   printf("%ld\n",D);


   return 0;
 }