Cod sursa(job #1839061)

Utilizator TimitocArdelean Andrei Timotei Timitoc Data 2 ianuarie 2017 13:35:03
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <iostream>
#include <cstdio>
#include <unordered_set>
#include <bitset>
#define MAXN 1050

using namespace std;

struct dreapta
{
    int a, b, c;
};
dreapta dr[MAXN];
struct punct
{
    int x, y;
};
punct p[MAXN];

bool parte(punct e, dreapta d)
{
    return (e.x*d.a + e.y*d.b + d.c) > 0;
}

int n, m;
bitset<MAXN> b[MAXN];
unordered_set<bitset<MAXN> > s;

void solve()
{
    for (int i = 1; i <= m; i++) {
        for (int j = 1; j <= n; j++)
            b[i][j] = parte(p[i], dr[j]);
        s.insert(b[i]);
    }
    printf("%d", s.size());
}

int main()
{
    freopen("regiuni.in", "r", stdin);
    freopen("regiuni.out", "w", stdout);

    scanf("%d %d", &n, &m);
    for (int i = 1; i <= n; i++)
        scanf("%d %d %d", &dr[i].a, &dr[i].b, &dr[i].c);
    for (int i = 1; i <= m; i++)
        scanf("%d %d", &p[i].x, &p[i].y);
    solve();

    return 0;
}