Pagini recente » Cod sursa (job #1353499) | Cod sursa (job #2711902) | Cod sursa (job #1270604) | Cod sursa (job #1482121) | Cod sursa (job #1150353)
#include<fstream>
#include<algorithm>
#define NMAX 1010
using namespace std;
ifstream f("regiuni.in");
ofstream g("regiuni.out");
struct punct
{
short x, y;
int regiune;
}a[NMAX];
struct dreapta
{
short a, b, c;
}ec[NMAX];
int n, m;
void Citeste()
{
int i, j;
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*(int)a[j].x+ec[i].b*(int)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;
}