Cod sursa(job #286620)

Utilizator alex_mircescuAlex Mircescu alex_mircescu Data 23 martie 2009 22:52:51
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <stdio.h>
#include <math.h>
#define MAXN 1010
#define MOD 666013

using namespace std;

long n, m, i, j, x, y, rez, ok, v[2][MAXN], a[MAXN], b[MAXN], c[MAXN];

void baga(long i);
long check();

int main() {
	freopen("regiuni.in", "r", stdin);
	freopen("regiuni.out", "w", stdout);
	scanf("%ld %ld", &n, &m);
	for (i = 1; i <= n; ++i) {
		scanf("%ld %ld %ld", &a[i], &b[i], &c[i]);
	}
	for (i = 1; i <= m; i++) {
		scanf("%ld %ld", &x, &y);
		baga(i);
	}
	for (i = 1; i <= m; ++i) {
		++rez;
		for (j = 1; j < i; ++j) {
			if (check()) {
				--rez;
				break;
			}
		}
	}
	printf("%ld\n", rez);
	return 0;
}

void baga(long i) {
	for (j = 1; j <= n; ++j) {
		if (a[j] * x + b[j] * y + c[j] <= 0) {v[1][i] = (v[1][i] * 2) % MOD;v[2][i] = (v[2][i] * 6) % 353419;} 
		else {v[1][i] = (v[1][i] * 2 + 1) % MOD;v[2][i] = (v[2][i] * 7 + 1) % 353419;}
	}	
}

long check() {
	if (v[1][j] == v[1][i] && v[2][j] == v[2][i]) return 1;
	return 0;
}