Cod sursa(job #202661)

Utilizator AndreiDDiaconeasa Andrei AndreiD Data 10 august 2008 13:31:36
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define NMAX 1111
#define MAX 1001000

int v[MAX][2],n,t;
int a[NMAX], b[NMAX], c[NMAX], r[NMAX];
int i, j, k, N, M, x, y,nreg,reg;

int main()
{
freopen("regiuni.in", "r", stdin);
scanf("%d %d", &N, &M);
for (i = 1; i <= N; i++)
scanf("%d %d %d", &a[i], &b[i], &c[i]);
nreg=0;
v[0][0]=v[0][1]=0;
n=1;
for (i = 1; i <= M; i++)
	{
	scanf("%d %d", &x, &y);
	 for (j = 1; j <= N; j++)
	 {
	  r[j]=a[j]*x+b[j]*y+c[j];
	  if (r[j]>0)
	      r[j] = 1;
		else
	      r[j] = 0;
		}
		t=0;
		reg=0;
		for (j = 1; j <= N; j++)
		{
		if (!v[t][r[j]])
			{
			reg=1;
			v[t][r[j]]=n;
			v[n][0]=v[n][1] = 0;
			n++;
			}
		t=v[t][r[j]];
		}
	nreg+=reg;
	}
freopen("regiuni.out", "w", stdout);
printf("%d\n", nreg);
return 0;
}