Cod sursa(job #1497026)

Utilizator justsomedudePalade Thomas-Emanuel justsomedude Data 5 octombrie 2015 22:57:31
Problema Regiuni Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<bits/stdc++.h>
#define prim1 9973
#define prim2 8867

using namespace std;

struct Dreapta{
  short a,b,c;
};

Dreapta Di[1002];
int n,m,s1[1002],s2[1002];

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

inline int Semn (Dreapta D, int x, int y)
{
    if (D.a*x + D.b*y + D.c < 0) return -1;
    return 1;
}

int main ()
{
    int i,j,cnt,gasit,r1,r2,x,y;
    fin >> n >> m;
    for (i=1; i<=n; i++)
        fin >> Di[i].a >> Di[i].b >> Di[i].c;

    for (i=1; i<=m; i++)
    {
        fin >> x >> y;
        r1 = 0;
        r2 = 0;
        for (j=1; j<=n; j++)
        {
            r1 = r1*10;
            r2 = r2*10;

            if (Semn (Di[j],x,y) < 0) { r1 += 1; r2 += 1;}
            else { r1 += 2; r2 += 2;}

            r1 = r1 % prim1;
            r2 = r2 % prim2;
        }
        s1[i] = r1;
        s2[i] = r2;
    }
    cnt = 1;
    for (i=2; i<=m; i++)
    {
        x = s1[i]; y = s2[i];
        gasit = 0;
        for (j=1; j<i && !gasit; j++)
        {
            if (s1[j] == x && s2[j] == y)
                 gasit = 1;
        }
        if (gasit == 0) cnt++;
    }
    fout << cnt << "\n";
    fin.close();
    fout.close();
    return 0;
}