Cod sursa(job #40391)

Utilizator lost_anBlanaru Adina lost_an Data 27 martie 2007 13:38:41
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb

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

#define Nmax 1001

char mat[Nmax][Nmax];

int p,i,j,n,m,ec;
int sort_function( const void *a, const void *b)
{
   return( strcmp((char *)a,(char *)b) );
}

struct drepte
{
int a,b,c;
};

struct puncte
{
int x,y;
};

drepte dr[Nmax];
puncte pc[Nmax];


int  main()
{
freopen("regiuni.in","r",stdin);
freopen("regiuni.out","w",stdout);
scanf("%d%d",&n,&m);
//n drepte si m puncte
for (i=0;i<n;i++)
      scanf("%d%d%d",&dr[i].a,&dr[i].b,&dr[i].c);
for (i=0;i<m;i++)
      scanf("%d%d",&pc[i].x,&pc[i].y);

for (i=0;i<n;i++)
      for(j=0;j<m;j++)
	  {
	  ec=dr[i].a * pc[j].x+ dr[i].b * pc[j].y + dr[i].c;
	  if (ec>0)
		mat[j][i]='1';
	     else mat[j][i]='0';
	  }

	  for(i=0;i<m;i++)
	   mat[i][n]=NULL;

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


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

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

return 0;

}