Pagini recente » Cod sursa (job #1098789) | Cod sursa (job #860111) | Cod sursa (job #1430965) | Cod sursa (job #1495393) | Cod sursa (job #285358)
Cod sursa(job #285358)
#include <stdio.h>
#include <vector>
#include <set>
#define maxn 1010
#define pb push_back
using namespace std;
long n, m, i, j, k, s, l[maxn], e[maxn], ok;
short int x[maxn], y[maxn], a[maxn], b[maxn], c[maxn];
vector< set<short int> > v;
set <short int> cur;
long semn(long i, long j)
{
long ec=a[i]*x[j]+b[i]*y[j]+c[i];
if(ec>0) return 1;
return -1;
}
int main()
{
set<short int> :: iterator it;
freopen("regiuni.in", "r", stdin);
freopen("regiuni.out", "w", stdout);
scanf("%d %d\n", &n, &m);
for(i=1; i<=n; i++)
{
scanf("%d %d %d", &a[i], &b[i], &c[i]);
}
for(i=1; i<=m; i++)
{
scanf("%d %d", &x[i], &y[i]);
cur.insert(i);
}
v.pb(cur);
for(i=1; i<=n; i++)
{
for(j=0; j<v.size(); j++)
{
cur.clear();
for(k=1, it=v[j].begin(); it!=v[j].end(); it++, k++)
{
e[k]=*it;
l[k]=semn(i, *it);
}
s=k-1;
ok=0;
for(k=1; k<=s; k++)
{
if(l[k]!=l[1])
{
cur.insert(e[k]);
v[j].erase(e[k]);
}
}
if(!cur.empty())
{
v.pb(cur);
}
}
}
printf("%d\n", v.size());
return 0;
}