Cod sursa(job #1150350)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 22 martie 2014 21:31:50
Problema Regiuni Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include<fstream>
#include<algorithm>
#define NMAX 1010

using namespace std;

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

struct punct
{
    int x, y, regiune;
}a[NMAX];
struct dreapta
{
    int a, b, c;
}ec[NMAX];
int n, m;

void Citeste()
{
    int i, j;
    punct *q, *ultim;
    f>>n>>m;
    for (i=1; i<=n; ++i) f>>ec[i].a>>ec[i].b>>ec[i].c;
    for (j=1; j<=m; ++j)
    {
        f>>a[j].x>>a[j].y;
        a[j].regiune=1;
    }
}

bool cmp(punct A, punct B)
{
    return A.regiune<B.regiune;
}

void Solve()
{
    int i, j, sg, nrm, nrp, val, nr=0;

    for (i=1; i<=n; ++i)
    {
        nrm=0; nrp=0;
        for (j=1; j<=m; ++j)
        {
            sg=ec[i].a*a[j].x+ec[i].b*a[j].y+ec[i].c;
            if (sg<0) a[j].regiune=a[j].regiune*10+1;
            else a[j].regiune=a[j].regiune*10+2;
        }
    }
    sort(a+1, a+m+1, cmp);
    for (i=1; i<=m; ++i)
        if (a[i].regiune!=a[i-1].regiune) ++nr;
    g<<nr<<"\n";
}

int main()
{
    Citeste();
    Solve();
    f.close();
    g.close();
    return 0;
}