Pagini recente » Cod sursa (job #790889) | Cod sursa (job #3253556) | Cod sursa (job #2079487) | Istoria paginii utilizator/licavraja | Cod sursa (job #40879)
Cod sursa(job #40879)
#include <stdio.h>
#include <string>
using namespace std;
#define MAX_N 1024
#define PRIME1 666013
#define PRIME2 9973
#define FIN "regiuni.in"
#define FOUT "regiuni.out"
int N, M, A[MAX_N], B[MAX_N], C[MAX_N];
pair<int, int> H[MAX_N];
int main(void)
{
int i, j, x, y, t, h1, h2;
freopen(FIN, "r", stdin);
freopen(FOUT, "w", stdout);
scanf("%d %d", &N, &M);
for (i = 0; i < N; i++)
scanf("%d %d %d", A+i, B+i, C+i);
for (i = 0; i < M; i++)
{
scanf("%d %d", &x, &y);
h1 =h2 = 1;
for (j = 0; j < N; j++)
{
t = A[j]*x + B[j]*y + C[j] < 0 ? 1 : 0;
h1 = (h1<<1 + t) % PRIME1;
h2 = (h2<<1 + t) % PRIME2;
}
H[i] = mp(h1, h2);
}
sort(H, H+M);
M = unique(H, H+M)-H;
printf("%d\n", M);
return 0;
}