Cod sursa(job #1106283)

Utilizator AeroHHorea Stefan AeroH Data 12 februarie 2014 18:13:30
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <cstdio>
#include <algorithm>
using namespace std;
FILE*fin=fopen("regiuni.in","r");
FILE*fout=fopen("regiuni.out","w");
int MOD=1e9+7;
int i,j,k,N,M,cr,X,Y;
int h1[1001];
    //int h2[1001];
int m[1001][3];
int main()
{
    fscanf(fin,"%d%d",&N,&M);
    for (i=1;i<=N;++i)
        {
            fscanf(fin,"%d%d%d",&m[i][1],&m[i][2],&m[i][3]);
        }
    for (i=1;i<=M;++i)
        {
            fscanf(fin,"%d%d",&X,&Y);
            for (j=1;j<=N;++j)
                {
                    if (m[j][1]*X+m[j][2]*Y+m[j][3]>0)
                    {
                        h1[i]=h1[i]*2+1;
                        h1[i]%=MOD;
                        //h2[i]=h2[i]*2+1;
                        //h2[i]%=MOD;
                    }
                    else
                    {
                        h1[i]=h1[i]<<1;
                        h1[i]%=MOD;
                        //h2[i]=h2[i]<<1;
                        //h2[i]%=MOD;
                    }
                }
        }
    fprintf(fout,"%d\n",unique(h1+1,h1+M+1)-h1-1);

    return 0;
}