Cod sursa(job #1267255)

Utilizator SmitOanea Smit Andrei Smit Data 19 noiembrie 2014 18:10:32
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>
#include <algorithm>
#define p 700001

using namespace std;
struct dreapta{
    int a,b,c;
};

int t[1001],cnt,n,m;
dreapta d[1001];

inline int F(int a,int b,int c,int x,int y)
{
    int v;
    v=a*x+b*y+c;
    if(v<0)
        return -1;
    return 1;
}

int main()
{
    int x,y,i,h,j;
    freopen("regiuni.in","r",stdin);
    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",&x,&y);
        h=0;
        for(j=1;j<=n;++j)
            if(F(d[j].a,d[j].b,d[j].c,x,y)<0)
                h=(h*10+1)%p;
            else
                h=(h*10+2)%p;
        t[i]=h;
    }
    sort(t+1,t+m+1);
    cnt=1;
    for(i=2;i<=m;++i)
        if(t[i]!=t[i-1])
            cnt++;
    freopen("regiuni.out","w",stdout);
    printf("%d\n",cnt);
    return 0;
}