Cod sursa(job #382735)

Utilizator iulia609fara nume iulia609 Data 14 ianuarie 2010 16:26:51
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<stdio.h>
#include<math.h>
using namespace std;
#define NMAX 1005
#define prim 666013
#define prim1 113

int A[NMAX], B[NMAX], C[NMAX], V1[NMAX], V2[NMAX];
int N, M, rez;

int main()
{ int i, j, x, y, k1, k2, a, 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++)
		{			
			a = A[j]*x + B[j]*y +C[j];
			if(a <= 0)
			{
				k1 = (k1 * 2) % prim;
				k2 = (k2 * 3) % prim1;
			}
			
				else
				{
					k1 = (k1 * 2 + 1) % prim;
					k2 = (k2 * 5 + 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)
				ok = 0;
		}
		if(ok) rez++;
	}
	
	printf("%d\n", rez);
	
	return 0;
}