Cod sursa(job #1478849)

Utilizator dnprxDan Pracsiu dnprx Data 29 august 2015 17:59:45
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <bits/stdc++.h>
#define prim1 9973
#define prim2 8867

using namespace std;

struct dreapta
{
    short a, b, c;
};
dreapta D[1001];
int n, m;
int s1[1001], s2[1001];

inline int Semn(dreapta D, int x, int y)
{
    if (D.a * x + D.b * y + D.c < 0) return -1;
    return 1;
}

int main()
{
    int i, x, y, rez, r1, r2, cnt, j, gasit;
    ifstream fin("regiuni.in");
    ofstream fout("regiuni.out");
    fin >> n >> m;
    for (i = 1; i <= n; i++)
        fin >> D[i].a >> D[i].b >> D[i].c;
    for (i = 1; i <= m; i++)
    {
        fin >> x >> y;
        rez = 0;
        for (j = 1; j <= n; ++j)
        {
            rez = rez * 10;
            if (Semn(D[j], x, y) < 0) rez++;
            else rez += 2;
            r1 = rez % prim1;
            r2 = rez % prim2;
        }
        s1[i] = r1;
        s2[i] = r2;
    }
    cnt = 1;
    for (i = 2; i <= m; i++)
    {
        x = s1[i];
        y = s2[i];
        gasit = 0;
        for (j = 1; j < i && !gasit; j++)
            if (s1[j] == x && s2[j] == y) gasit = 1;
        if (gasit == 0) cnt++;
    }
    fout << cnt << "\n";
    fin.close();
    fout.close();
    return 0;
}