Cod sursa(job #301266)

Utilizator DraStiKDragos Oprica DraStiK Data 8 aprilie 2009 07:40:45
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <algorithm>
using namespace std;
#define MOD 1323456201
#define DIM 1005
struct drpt {int a,b,c;} d[DIM];
struct pct {int x,y;} p[DIM];
long long sol[DIM];
int m,n,nrt;
void read ()
{
    int i;
    scanf ("%d%d",&n,&m);
    for (i=1; i<=n; ++i)
        scanf ("%d%d%d",&d[i].a,&d[i].b,&d[i].c);
    for (i=1; i<=m; ++i)
        scanf ("%d%d",&p[i].x,&p[i].y);
}
void proc ()
{
    int i,j;
    for (i=1; i<=m; ++i)
        for (j=1; j<=n; ++j)
            if (d[j].a*p[i].x+d[j].b*p[i].y+d[j].c>0)
            {
                sol[i]=2*sol[i]+1;
                if (sol[i]>MOD)
                    sol[i]-=MOD;
            }
            else
            {
                sol[i]=2*sol[i];
                if (sol[i]>MOD)
                    sol[i]-=MOD;
            }
}
void solve ()
{
    int i;
    long long j;
    for (i=1; i<=m; )
    {
        j=sol[i];
        for ( ; sol[i]==j && i<=m; ++i);
        ++nrt;
    }
    printf("%d",nrt);
}
int main()
{
    freopen ("regiuni.in","r",stdin);
    freopen ("regiuni.out","w",stdout);
    read ();  
    proc ();
    sort(sol,sol+m+1);
    solve ();
    return 0;
}