Cod sursa(job #39093)

Utilizator wefgefAndrei Grigorean wefgef Data 26 martie 2007 13:37:18
Problema Regiuni Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <cstdio>
#include <algorithm>
#include <vector>

using namespace std;

#define sz size()
#define pb push_back

#define Nmax 1024

int n, m;
int x[Nmax], y[Nmax], a[Nmax], b[Nmax], c[Nmax];
vector< vector<int> > v;

void readdata()
{
    freopen("regiuni.in", "r", stdin);
    freopen("regiuni.out", "w", stdout);
    
    int i;
    
    scanf("%d %d", &n, &m);
    for (i = 1; i <= n; ++i)
        scanf("%d %d %d", &a[i], &b[i], &c[i]);
    for (i = 1; i <= m; ++i)
        scanf("%d %d", &x[i], &y[i]);
}    

int semn(int a, int b, int c, int x, int y)
{
    int aux = a*x+b*y+c;
    if (aux > 0) return 1;
    return 0;
}    

void solve()
{
    int i, j;
    vector<int> aux;
    
    for (i = 1; i <= m; ++i)
    {
        aux.clear();
        for (j = 1; j <= n; ++j)
                aux.pb( semn(a[j], b[j], c[j], x[i], y[i]) );
        v.pb(aux);
    }
    sort( v.begin(), v.end() );
    v.resize( unique(v.begin(), v.end()) - v.begin());
    printf("%d\n", v.sz);
}    

int main()
{
    readdata();
    solve();
    return 0;
}