Cod sursa(job #1775214)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 10 octombrie 2016 02:16:45
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
//
//  main.cpp
//  Regiuni
//
//  Created by Albastroiu Radu on 10/10/16.
//  Copyright © 2016 Albastroiu Radu. All rights reserved.
//

#include <iostream>
#include <fstream>
#include <algorithm>
#include <unordered_map>
#include <vector>
#include <bitset>
#include <unordered_set>

using namespace std;

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

long long i, j, n, m;
double x, y, z;

struct dreapta
{
    double a, b, c;
}drpt;

struct punct
{
    double x, y;
}pnct;

vector<dreapta> drepte;
vector<punct> puncte;
unordered_set<bitset<1005>> regiuni;

int main()
{
    
    fin >> n >> m;
    
    for(i=1; i<=n; i++)
    {
        fin >> x >> y >> z;
        drpt.a = x;
        drpt.b = y;
        drpt.c = z;
        drepte.push_back(drpt);
    }
    
    for(i=1; i<=m; i++)
    {
        fin >> x >> y;
        pnct.x = x;
        pnct.y = y;
        puncte.push_back(pnct);
        bitset<1005> verificare;
        
        j = 0;
        for(auto &element : drepte)
        {
            if( (element.a * pnct.x + element.b * pnct.y + element.c) > 0 )
                verificare[j] = 1;
            j++;
        }
        regiuni.insert(verificare);
    }
    
    fout << regiuni.size();
    
    return 0;
}