Cod sursa(job #1775213)

Utilizator ducu34Albastroiu Radu Gabriel ducu34 Data 10 octombrie 2016 02:12:54
Problema Regiuni Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 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>

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;
vector<bitset<1005>> verificare;

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);
        verificare.push_back(0);
        
        j = 0;
        for(auto &element : drepte)
        {
            if( (element.a * pnct.x + element.b * pnct.y + element.c) > 0 )
                verificare[i-1][j] = 1;
            j++;
        }
    }
    
    for(i=0;i<verificare.size();i++)
        for(j=i+1;j<verificare.size();j++)
            if(verificare[i] == verificare[j])
                m--;
    
    fout << m;
    
    return 0;
}