Cod sursa(job #984352)

Utilizator stefanzzzStefan Popa stefanzzz Data 14 august 2013 11:48:52
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>
#include <list>
#define MAXN 1005
using namespace std;
ifstream f("regiuni.in");
ofstream g("regiuni.out");

short int n,m,a[MAXN],b[MAXN],c[MAXN],nrg=1,aux,p;
int x,y;
list< pair<short int,short int> > l[MAXN];
list< pair<short int,short int> >::iterator it;

int main()
{
    short int i,j;
    f>>n>>m;
    for(i=1;i<=n;i++)
        f>>a[i]>>b[i]>>c[i];
    for(i=1;i<=m;i++){
        f>>x>>y;
        l[1].push_back(make_pair(x,y));}
    for(i=1;i<=n;i++){
        aux=nrg;
        for(j=1;j<=aux;j++){
            it=l[j].begin();
            x=(*it).first;
            y=(*it).second;
            if(x*a[i]+y*b[i]+c[i]>0)
                p=1;
            else
                p=-1;
            it++;
            for(it;it!=l[j].end();it++){
                x=(*it).first;
                y=(*it).second;
                if((x*a[i]+y*b[i]+c[i])*p<0){
                    l[nrg+1].push_back(*it);
                    it=l[j].erase(it);
                    it--;}}
            if(!l[nrg+1].empty())
                nrg++;}}
    g<<nrg<<'\n';
    f.close();
    g.close();
    return 0;
}