Cod sursa(job #37644)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 25 martie 2007 11:36:00
Problema Regiuni Scor 100
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasele 11-12 Marime 0.83 kb
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

#define MAXN 1005

int N, M;
int A[MAXN], B[MAXN], C[MAXN];

vector<int> tmp;
vector< vector<int> > smn;

int semn( int A, int B, int C, int x, int y )
{
	int D = (A * x + B * y + C);

	if (D > 0) return 1;
	if (D < 0) return -1;
	return 0;
}

int main()
{
	freopen("regiuni.in", "rt", stdin);
	freopen("regiuni.out", "wt", stdout);

	scanf("%d %d", &N, &M);

	for (int i = 0; i < N; i++)
		scanf("%d %d %d", A + i, B + i, C + i);

	for (int i = 0; i < M; i++)
	{
		int X, Y;
		scanf("%d %d", &X, &Y);

		tmp.clear();
		for (int j = 0; j < N; j++)
			tmp.push_back( semn( A[j], B[j], C[j], X, Y ) );

		smn.push_back( tmp );
	}

	sort( smn.begin(), smn.end() );
	smn.resize( unique( smn.begin(), smn.end() ) - smn.begin() );

	printf("%u\n", smn.size());
	return 0;
}