Cod sursa(job #1099241)

Utilizator CosminRusuCosmin Rusu CosminRusu Data 5 februarie 2014 18:08:34
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <vector>

using namespace std;

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

vector <short> a, b, c;
vector <unsigned int> Hash;
short x, y, N, M, Ans;
bool alone, sign;

int main() {
    fin >> N >> M;
    a.reserve(N);
    b.reserve(N);
    c.reserve(N);
    Hash.reserve(M);
    for(short i = 0 ; i < N ; ++ i)
        fin >> a[i] >> b[i] >> c[i];
    for(short i = 0 ; i < M ; ++ i) {
        fin >> x >> y;
        for(short j = 0 ; j < N ; ++ j) {
            sign = ((a[j] * x + b[j] * y + c[j]) > 0);
            Hash[i] = ((Hash[i] << 1) + sign);
        }
    }
    for(short i = 0 ; i < M ; ++ i) {
        alone = true;
        for(short j = 0 ; j < i && alone ; ++ j)
            if(Hash[i] == Hash[j])
                alone = false;
        Ans += alone;
    }
    fout << Ans << '\n';
    fin.close();
    fout.close();
    return 0;
}