Cod sursa(job #396333)

Utilizator allynaAlina S allyna Data 14 februarie 2010 23:07:42
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
#include<math.h>
#define N_MAX 1005
#define prim 666013
#define prim1 333013
using namespace std;
int a[N_MAX],b[N_MAX],c[N_MAX],v1[N_MAX],v2[N_MAX],n,m,sol;
int main()
{ 
    int i,j,x,y,k1,k2,a1,ok;
	freopen("regiuni.in", "r", stdin);
	freopen("regiuni.out", "w", stdout);
	scanf("%d%d",&n,&m);
	for(i=1;i<=n;i++)
		scanf("%d%d%d",&a[i],&b[i],&c[i]);
	for(i=1;i<=m;i++)
	{
		scanf("%d%d",&x,&y);
		k1=k2=0;
		for(j=1;j<=n;j++)
		{			
			a1=a[j]*x+b[j]*y+c[j];
			if(a1<=0)
			{
				k1=(k1*2)%prim;
				k2=(k2*6)%prim1;
			}
				else
				{
					k1=(k1*2+1)%prim;
					k2=(k2*7+1)%prim1;
				}
			v1[i]=k1;
			v2[i]=k2;
		}
	}
	for(i=1;i<=m;i++)
	{
		for(j=1;j<i;j++)
		{
			ok=1;
			if(v1[i]==v1[j] && v2[i]==v2[j])
				{
                 ok=0;
                 break;
                 }
		}
		if(ok) sol++;
	}
	printf("%d\n",sol);
	return 0;
}