Cod sursa(job #202659)
#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,eg;
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;
}