Pagini recente » Cod sursa (job #1843200) | Cod sursa (job #2047709) | Cod sursa (job #1202187) | Cod sursa (job #2074122) | Cod sursa (job #785641)
Cod sursa(job #785641)
#include <cstdio>
using namespace std;
const int Hsize = 1000000007;
const int Hsize2 = 1000000009;
const int Hsexion = 2;
const int Hsexion2 = 3;
const int Nmax = 1010 ;
short a[Nmax],b[Nmax],c[Nmax];
int Hash1[Nmax],Hash2[Nmax];
int N,M,A,B,Sol;
int main()
{
FILE *f = fopen("regiuni.in", "r");
int x,y,i,j;
fscanf(f, "%d %d", &N, &M);
for (i=1;i<=N;++i)
fscanf(f, "%d %d %d", &a[i], &b[i] ,&c[i]);
for (i=1;i<=M;++i)
{
fscanf(f, "%d %d", &x, &y);
A=B=0;
for (j=1;j<=N;++j)
A=( A*Hsexion+( int(a[j])*x+int(b[j])*y+int(c[j]) > 0 ) ) % Hsize ,
B=( B*Hsexion2+( int(a[j])*x+int(b[j])*y+int(c[j]) > 0 ) ) % Hsize ;
Hash1[i]=A;
Hash2[i]=B;
}
Sol=1;
for (i=2;i<=M;++i)
{
for (j=1;j<i;++j)
if ( Hash1[i]==Hash1[j] && Hash2[i]==Hash2[j] )
break;
if ( j==i )
++Sol;
}
fprintf(fopen("regiuni.out", "w"), "%d\n" , Sol );
}