Cod sursa(job #1600428)

Utilizator ArkinyStoica Alex Arkiny Data 14 februarie 2016 23:37:17
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <map>
#include <string>

using namespace std;

ifstream fin("regiuni.in");
ofstream fout("regiuni.out");

int N, M, x, y, solution;
string binstring;

struct {
	int a;
	int b;
	int c;
}v[1005];

map<string, char>H;

int main()
{
	fin >> N >> M;

	for (int i = 1; i <= N; i++)
	{
		fin >> v[i].a >> v[i].b >> v[i].c;
	}

	for (int i = 1; i <= M; i++)
	{
		fin >> x >> y;
		binstring = "";
		char a = NULL;
		char p = 0;
		bool ok = false;

		for (int j = 1; j <= N; j++)
		{
			bool ok = false;

			if (v[j].a*x + v[j].b*y + v[j].c < 0)
			{
				a = (1 << p) | a;
			}
			p++;
			if (p > 7)
			{
				p = 0;
				binstring += a;
				ok = true;
				a = NULL;
			}
		}

		if (!ok)
		{
			binstring += a;
		}

		if (H[binstring] == 0)
		{
			solution++;
			H[binstring] = 1;
		}
	}

	fout << solution;


	return 0;
}