Cod sursa(job #1555832)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 23 decembrie 2015 17:10:37
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <unordered_set>
#include <vector>
#include <bitset>
using namespace std;

constexpr int maxn = 1010;

struct dreapta{
	int a, b, c; };

struct punct{
	int x, y; };

int calc(const dreapta d, const punct p){
	return d.a * p.x + d.b * p.y + d.c; }

int main(){
	ifstream f("regiuni.in");
	ofstream g("regiuni.out");

	int n, m;
	f >> n >> m;

	static vector<dreapta> drepte(n);
	static vector<punct> puncte(m);

	for(auto& d : drepte){
		f >> d.a >> d.b >> d.c; }
	for(auto& p : puncte){
		f >> p.x >> p.y; }

	static vector<bitset<maxn>> car(m, 0);

	for(int j = 0; j < m; ++j){
		for(int i = 0; i < n; ++i){
			car[j][i] = (calc(drepte[i], puncte[j]) > 0); } }

	unordered_set<bitset<maxn>> sets;
	for(const auto& x : car){
		sets.insert(x); }

	g << sets.size();
	return 0; }