Cod sursa(job #1364584)

Utilizator retrogradLucian Bicsi retrograd Data 27 februarie 2015 18:47:56
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include<fstream>
#include<vector>
#include<bitset>
#include<unordered_map>

using namespace std;
typedef int var;

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

const var MAXN = 1001;
const var P1 = 666013,
          P2 = 123201,
          P3 = 9381;


var A[MAXN], B[MAXN], C[MAXN];



inline bool is_above(const var &x, const var &y, const var &ind) {
    return A[ind]*x + B[ind]*y + C[ind] > 0;
}


unordered_map<var, bool> H;

int main() {
    var n, m, x, y;
    fin>>n>>m;



    for(var i=1; i<=n; i++) {
        fin>>A[i]>>B[i]>>C[i];
    }

    var val1, val2;

    for(var i=1; i<=m; i++) {
        fin>>x>>y;
        val1 = val2 = 0;
        for(var j=1; j<=n; j++) {
            bool rez = is_above(x, y, j);
            val1 = val1*2 + rez;
            val2 = val2*2 + rez;
            val1 %= P1;
            val2 %= P2;
        }
        H[val1 * P3 + val2] = 1;
    }

    fout<<H.size();

    return 0;
}