Pagini recente » Cod sursa (job #2788873) | Cod sursa (job #2657338) | Cod sursa (job #2478630) | Cod sursa (job #1614623) | Cod sursa (job #2281530)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("regiuni.in");
ofstream g ("regiuni.out");
struct gigel
{
int a, b, c;
};
struct nod
{
int x, y;
};
struct per
{
int sus, jos;
};
nod v[1005];
gigel dr[1005];
per nr[1005];
int n, m, sol;
bool cmp (per a, per b)
{
if (a.sus > b.sus) return false;
if (a.sus == b.sus && a.jos > b.jos) return false;
return true;
}
int main()
{
f >> n >> m;
for (int i = 1; i <= n; i++)
{
f >> dr[i].a >> dr[i].b >> dr[i].c;
}
for (int i = 1; i <= m; i++)
{
f >> v[i].x >> v[i].y;
}
for (int i = 1; i <= m; i++)
{
for (int j = 1; j <= n; j++)
{
if (dr[j].a * v[i].x + dr[j].b * v[i].y + dr[j].c > 0) ///punctul se afla deasupra dreptei
{
nr[i].sus++;
}
else ///punctul se afla dedesuptul dreptei
{
nr[i].jos++;
}
}
}
sort (nr + 1, nr + m + 1, cmp);
sol = 0;
for (int i = 1; i <= m;)
{
per vasile = nr[i];
while (vasile.sus == nr[i].sus && vasile.jos == nr[i].jos && i <= m)
{
i++;
}
sol++;
}
g << sol << '\n';
return 0;
}