Pagini recente » Cod sursa (job #1014376) | Cod sursa (job #1590106) | Cod sursa (job #1548503) | Cod sursa (job #1346816) | Cod sursa (job #42504)
Cod sursa(job #42504)
#include <stdio.h>
#define modulo 499
#define nm 1010
#define mm 510
int n, m, i, j, sol, l;
int v[nm][nm], a[nm], b[nm], c[nm], x[nm], y[nm];
//bool u[mm][mm][mm];
int viz[nm];
int hx[nm], hy[nm], hz[nm];
/*const int X = 269;
const int Y = 311;
const int Z = 397;*/
const int X = 19991;
const int Y = 18181;
const int Z = 17471;
void read()
{
scanf("%d %d", &m, &n);
for (i=1; i<=m; ++i)
{
scanf("%d %d %d", &a[i], &b[i], &c[i]);
}
for (i=1; i<=n; ++i)
{
scanf("%d %d", &x[i], &y[i]);
}
}
void solve()
{
for (i=1; i<=n; ++i)
{
for (j=1; j<=m; ++j)
{
l = a[j] * x[i] + b[j] * y[i] + c[j];
if (l == 0)
{
v[i][j] = 0;
}
if (l > 0)
v[i][j] = 1;
if (l < 0)
v[i][j] = -1;
hx[i] = (((hx[i] * X) % modulo) + v[i][j]) % modulo;
hy[i] = (((hy[i] * Y) % modulo) + v[i][j]) % modulo;
hz[i] = (((hz[i] * Z) % modulo) + v[i][j]) % modulo;
}
}
sol = 0;
for (i=1; i<=n; ++i)
{
/* if (u[hx[i]][hy[i]][hz[i]] == 0)
{
u[hx[i]][hy[i]][hz[i]] = 1;
sol ++;
}*/
if (viz[i] == 0)
{
viz[i] = 1;
++ sol;
for (j = i + 1; j <=n; ++j)
{
if (hx[i] == hx[j] && hy[i] == hy[j] && hz[i] == hz[j])
{
viz[j] = 1;
}
}
}
}
}
void write()
{
printf("%d\n", sol);
}
int main()
{
freopen("regiuni.in" ,"r", stdin);
freopen("regiuni.out","w",stdout);
read();
solve();
write();
fclose(stdin);
fclose(stdout);
return 0;
}