Cod sursa(job #386371)

Utilizator silvia_the_bestSilvia Pripoae silvia_the_best Data 24 ianuarie 2010 18:56:31
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>
#include <algorithm>

using namespace std;

#define FIN "regiuni.in"
#define FOUT "regiuni.out"

#define N 1001
#define P1 660013
#define P2 666019

int A[N], B[N], C[N];

pair <int, int> H[N];

int main()
{
    int i, j, X, Y, r1, r2, n, m;

    freopen(FIN, "r", stdin);
    freopen(FOUT, "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);

        for (j = 1, r1 = r2 = 0;  j <= n; ++ j)
        {
            r1 = (r1 * 3559 + (A[j] * X + B[j] * Y + C[j] > 0)) % P1;
            r2 = (r2 * 3557 + (A[j] * X + B[j] * Y + C[j] > 0)) % P2;
        }

        H[i] = make_pair(r1, r2);
    }

    sort(H + 1, H + m + 1);

    printf("%d\n", unique(H + 1, H + m + 1) - H - 1);
}