Cod sursa(job #38996)

Utilizator MARCELMIHALCEA MARICEL MARCEL Data 26 martie 2007 12:39:00
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

#define Nmax 1001


typedef int vector[Nmax];

vector a,b,c,x,y;

int n,m;

char s[Nmax][Nmax];


int pozitie(int i, int j) // punctul i - dreapta j
 {
 if( a[j]*x[i]+b[j]*y[i]+c[j] > 0 ) return 1;
 return 0;
 }


int sort_function( const void *a, const void *b)
{
   return( strcmp((char *)a,(char *)b) );
}


int main()
{
int i,j,nrcomp=1;

freopen("regiuni.in","r",stdin);
freopen("regiuni.out","w",stdout);

scanf("%d%d",&n,&m);

for(i=0;i<n;i++)
 scanf("%d%d%d",a+i,b+i,c+i);

for(i=0;i<m;i++)
 scanf("%d%d",x+i,y+i);


 for(i=0;i<m;i++)
  for(j=0;j<n;j++)
   if( pozitie(i,j) )  s[i][j]='1';
     else s[i][j]='0';

 qsort((void *)s, m, sizeof(s[0]), sort_function);


 for(i=1;i<m;i++)
  if( strcmp(s[i-1],s[i]) )
    nrcomp++;


   printf("%d\n",nrcomp);


 return 0;
  }