Pagini recente » Cod sursa (job #659209) | Cod sursa (job #1404222) | Cod sursa (job #2594229) | Cod sursa (job #1890283) | Cod sursa (job #972403)
Cod sursa(job #972403)
#include <cstdio>
#define mod1 666013
#define mod2 353419
#define maxn 1010
using namespace std;
struct dreapta {
int a, b, c;
};
int n, m, i, j, x, y, nr, sol, nr2, ok;
dreapta v[maxn];
int h1[maxn], h2[maxn];
int main() {
freopen("regiuni.in", "r", stdin);
freopen("regiuni.out", "w", stdout);
scanf("%d%d", &n, &m);
for (i = 1; i <= n; i++)
scanf("%d%d%d", &v[i].a, &v[i].b, &v[i].c);
for (i = 1; i <= m; i++) {
scanf("%d%d", &x, &y);
nr = nr2 = 0;
for (j = 1; j <= n; j++)
if (v[j].a * x + v[j].b * y + v[j].c <= 0) {
nr = (nr * 2) % mod1;
nr2 = (nr2 * 6) % mod2;
}
else {
nr = (nr * 2 + 1) % mod1;
nr2 = (nr2 * 7 + 1) % mod2;
}
h1[i] = nr;
h2[i] = nr2;
}
for (i = 1; i <= m; i++) {
ok = 1;
for (j = 1; j < i; j++)
if (h1[j] == h1[i] && h2[j] == h2[i]) {
ok = 0;
break;
}
sol += ok;
}
printf("%d\n", sol);
return 0;
}