Cod sursa(job #1106283)
Utilizator | 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;
}