Cod sursa(job #1603872)

Utilizator felixiPuscasu Felix felixi Data 17 februarie 2016 20:03:21
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
#include <map>
#include <string>

using namespace std;

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

int N, M, x, y, solution;
string binstring;

struct
{
    int a;
    int b;
    int c;
} v[1005];

map<string, char>H;

int main()
{
    fin >> N >> M;

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

    for (int i = 1; i <= M; i++)
    {
        fin >> x >> y;
        binstring = "";
        char a = NULL;
        char p = 0;
        bool ok = false;

        for (int j = 1; j <= N; j++)
        {
            bool ok = false;

            if (v[j].a*x + v[j].b*y + v[j].c < 0)
            {
                a = (1 << p) | a;
            }
            p++;
            if (p > 7)
            {
                p = 0;
                binstring += a;
                ok = true;
                a = NULL;
            }
        }

        if (!ok)
        {
            binstring += a;
        }

        if (H[binstring] == 0)
        {
            solution++;
            H[binstring] = 1;
        }
    }

    fout << solution;


    return 0;
}