Pagini recente » Istoria paginii runda/idulrundei | Cod sursa (job #2042009) | Cod sursa (job #1109389) | Cod sursa (job #501370) | Cod sursa (job #1497026)
#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;
}