Pagini recente » Cod sursa (job #2360474) | Cod sursa (job #2226773) | Cod sursa (job #2470230) | Cod sursa (job #3127271) | Cod sursa (job #972402)
Cod sursa(job #972402)
#include <fstream>
#include <algorithm>
#define mod1 666013
#define mod2 353419
#define maxn 1010
using namespace std;
ifstream fin("regiuni.in"); ofstream fout("regiuni.out");
struct dreapta
{
int a, b, c;
};
int n, m, i, j, x, y, nr, sol, nr2, ok;
dreapta v[maxn];
int h1[maxn], h2[maxn];
int main()
{
fin >> n >> m;
for (i = 1; i <= n; i++)
fin >> v[i].a >> v[i].b >> v[i].c;
for (i = 1; i <= m; i++)
{
fin >> x >> y;
nr = nr2 = 0;
for (j = 1; j <= n; j++)
if (v[j].a * x + v[j].b * y + v[j].c <= 0)
{
nr = (nr * 2) % mod1;
nr2 = (nr2 * 6) % mod2;
}
else
{
nr = (nr * 2 + 1) % mod1;
nr2 = (nr2 * 7 + 1) % mod2;
}
h1[i] = nr;
h2[i] = nr2;
}
for (i = 1; i <= m; i++)
{
ok = 1;
for (j = 1; j < i; j++)
if (h1[j] == h1[i] && h2[j] == h2[i])
{
ok = 0;
break;
}
sol += ok;
}
fout << sol;
return 0;
}