Cod sursa(job #40874)

Utilizator dominoMircea Pasoi domino Data 27 martie 2007 20:12:41
Problema Regiuni Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <stdio.h>
#include <string>

using namespace std;

#define MAX_N 1024
#define PRIME 666013
#define FIN "regiuni.in"
#define FOUT "regiuni.out"

int N, M, A[MAX_N], B[MAX_N], C[MAX_N], H[MAX_N];

int main(void)
{
    int i, j, x, y, t, h;

    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);
        h = 1;
        for (j = 0; j < N; j++)
        {
            t = A[j]*x + B[j]*y + C[j] < 0 ? 1 : 0;
            h = (h<<1 + t) % PRIME;
        }
        H[i] = h;
    }

    sort(H, H+M);
    M = unique(H, H+M)-H;

    printf("%d\n", M);

    return 0;
}