Cod sursa(job #382325)

Utilizator GheorgheMihaiMihai Gheorghe GheorgheMihai Data 13 ianuarie 2010 13:32:34
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<stdio.h>
#define pmax 1000000007
#define pmax2 666013
struct dreapta
{
	int a,b,c;
}v[1<<10];
int n,m,h1[1<<10],h2[1<<10];

int main()
{
	freopen("regiuni.in","r",stdin);
	freopen("regiuni.out","w",stdout);
	scanf("%d%d",&n,&m);
	int i,j,x,y;
	for(i=1;i<=n;i++)
		scanf("%d%d%d",&v[i].a,&v[i].b,&v[i].c);
	int nr1,nr2;
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		nr1=nr2=0;
		for(j=1;j<=n;j++)
			if(v[j].a*x+v[j].b*y+v[j].c<0)
			{
				nr1=(nr1*2)%pmax;
				nr2=(nr2*3)%pmax2;
			}
			else
			{
				nr1=(nr1*2+1)%pmax;
				nr2=(nr2*5+1)%pmax2;
			}
		h1[i]=nr1;
		h2[i]=nr2;
	}
	int sol=0;
	for(i=1;i<=m;i++)
	{
		for(j=1;j<i;j++)
			if(h1[i]==h1[j] && h2[i]==h2[j])
				break;
		if(j==i)
			sol++;
	}
	printf("%d\n",sol);
	return 0;
}