Cod sursa(job #7253)

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

long x[50001],y[50001],m[50001],ex[50001], D;

int este(long a,long b)
 {
   if(a==b)
    return 0;
   //verific prima coordonata
   if((x[a]>x[0])==(x[a]>x[b])==(x[b]>x[0]))
    if((y[a]>y[0])==(y[a]>y[b])==(y[b]>y[0]))
     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;

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

   for(i=0;i<=n;++i)
    scanf("%ld%ld",&x[i],&y[i]);

   for(i=1;i<=n;++i)
    {
     m[i]=i;
     ex[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;
 }