Cod sursa(job #972402)

Utilizator DaNutZ2UuUUBB Bora Dan DaNutZ2UuU Data 11 iulie 2013 16:48:25
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <algorithm>

#define mod1 666013
#define mod2 353419
#define maxn 1010

using namespace std;

ifstream fin("regiuni.in"); ofstream fout("regiuni.out");

struct dreapta
{
    int a, b, c;
};

int n, m, i, j, x, y, nr, sol, nr2, ok;
dreapta v[maxn];
int h1[maxn], h2[maxn];


int main()
{
    fin >> n >> m;
    for (i = 1; i <= n; i++)
        fin >> v[i].a >> v[i].b >> v[i].c;

    for (i = 1; i <= m; i++)
        {
        fin >> x >> y;
        nr = nr2 = 0;
        for (j = 1; j <= n; j++)
            if (v[j].a * x + v[j].b * y + v[j].c <= 0)
            {
                nr = (nr * 2) % mod1;
                nr2 = (nr2 * 6) % mod2;
            }
            else
            {
                nr = (nr * 2 + 1) % mod1;
                nr2 = (nr2 * 7 + 1) % mod2;
            }
        h1[i] = nr;
        h2[i] = nr2;
    }

    for (i = 1; i <= m; i++)
        {
        ok = 1;
        for (j = 1; j < i; j++)
            if (h1[j] == h1[i] && h2[j] == h2[i])
            {
                ok = 0;
                break;
            }
        sol += ok;
    }

    fout << sol;

    return 0;
}