Cod sursa(job #1294611)

Utilizator paunmatei7FMI Paun Matei paunmatei7 Data 17 decembrie 2014 21:34:33
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <cstdio>
#include <vector>

#define NMAX 1007
#define x first
#define y second

using namespace std;

vector < vector < pair < int, int > > > Ans, Ans1;
vector < pair < int, int > > v, v1;
int n, m;
int a[NMAX], b[NMAX], c[NMAX];

int main(){
    freopen("regiuni.in", "r", stdin);
    freopen("regiuni.out", "w", stdout);
    scanf("%d %d", &n, &m);
    for(int i = 1; i <= n; i++)
        scanf("%d %d %d\n", &a[i], &b[i], &c[i]);
    for(int i = 1; i <= m; i++){
        int A, B;
        scanf("%d %d\n", &A, &B);
        v.push_back(make_pair(A, B));
    }
    Ans.push_back(v);
    for(int i = 1; i <= n; ++i){
        Ans1.clear();
        for(int j = 0; j < Ans.size(); ++j){
            v.clear();
            v1.clear();
            for(int k = 0; k < Ans[j].size(); ++k){
                if (a[i] * Ans[j][k].x + b[i] * Ans[j][k].y + c[i] < 0)
                    v.push_back(Ans[j][k]);
                else
                    v1.push_back(Ans[j][k]);
            }
            if (v.size() > 0)
                Ans1.push_back(v);
            if (v1.size() > 0)
                Ans1.push_back(v1);
        }
        Ans = Ans1;
    }
    printf("%d\n", Ans.size());
    return 0;
}