Pagini recente » Cod sursa (job #333571) | Cod sursa (job #617531) | Cod sursa (job #1326718) | Istoria paginii runda/concurs1/clasament | Cod sursa (job #285525)
Cod sursa(job #285525)
#include <stdio.h>
#include <vector>
#include <set>
#define maxn 1010
#define pb push_back
using namespace std;
long n, m, i, j, k, sol, l[maxn], gr[maxn], s[maxn], f[maxn], ok[maxn];
long x[maxn], y[maxn], a[maxn], b[maxn], c[maxn];
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()
{
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]);
gr[i]=1;
}
sol=1;
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
f[j]=0;
s[j]=0;
}
for(j=1; j<=m; j++)
{
l[j]=semn(i, j);
if(f[gr[j]]==0)
{
f[gr[j]]=1;
s[gr[j]]=l[j];
ok[gr[j]]=0;
}
if(ok[gr[j]]==0 && l[j]!=s[gr[j]])
{
sol++;
ok[gr[j]]=sol;
}
if(l[j]!=s[gr[j]])
{
gr[j]=ok[gr[j]];
}
}
}
printf("%d\n", sol);
return 0;
}