Pagini recente » Cod sursa (job #614915) | Cod sursa (job #2360258) | Cod sursa (job #2735417) | Cod sursa (job #821148) | Cod sursa (job #627101)
Cod sursa(job #627101)
#include <cstdio>
#include <algorithm>
#define NMAX 1000
#define MOD 30
using namespace std;
int N, M;
int a[NMAX], b[NMAX], c[NMAX];
int x[NMAX], y[NMAX];
int v[NMAX][NMAX/MOD];
int h[NMAX];
int main()
{
int i, j, nr, key;
freopen("regiuni.in", "r", stdin);
freopen("regiuni.out", "w", stdout);
scanf("%d %d", &N, &M);
for(i=0;i<N;++i)
{
scanf("%d %d %d", &a[i], &b[i], &c[i]);
}
for(i=0;i<M;++i)
{
scanf("%d %d", &x[i], &y[i]);
}
for(i=0;i<M;++i)
{
key = 0;
for(j=0;j<N;++j)
{
if(a[j]*x[i] + b[j]*y[i] + c[j] > 0)
{
v[i][j/MOD] = (v[i][j/MOD]<<1) + 1;
}
else
{
v[i][j/MOD] = v[i][j/MOD]<<1;
}
if(j % MOD == MOD - 1)
{
key = (key * 7919 + v[i][j/MOD]) % 150000001;
}
key = (key * 7919 + v[i][j/MOD]) % 150000001;
}
h[i] = key;
}
sort(h, h+M);
nr = 1;
for(i=1;i<M;++i)
{
if(h[i] != h[i-1])
{
++nr;
}
}
printf("%d", nr);
return 0;
}