Pagini recente » emag_2016-incepatori-2 | Cod sursa (job #3186124) | Cod sursa (job #177586) | Cod sursa (job #583674) | Cod sursa (job #39956)
Cod sursa(job #39956)
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#define Nmax 1002
int N,M,a[Nmax],b[Nmax],c[Nmax],x[Nmax],y[Nmax],g[Nmax],r[Nmax],ind[Nmax],ind2[Nmax],i,j,k,k2,pi,nr;
int main()
{
freopen("regiuni.in","r",stdin);
scanf("%d %d",&N,&M);
for (i=0;i<N;++i)
scanf("%d %d %d",&a[i],&b[i],&c[i]);
for (i=0;i<M;++i)
{
scanf("%d %d",&x[i],&y[i]);
g[i]=i;
}
fclose(stdin);
ind2[M]=M+1;
for (i=0;i<N;++i)
{
j=0;
nr=0;
k=0;
memcpy(ind,ind2,sizeof(ind2));
while (j<M)
{
k2=0;
pi=k;
do
{
if (a[i]*x[g[j]]+b[i]*y[g[j]]+c[i]<0)
{
g[k]=g[j];
ind2[k++]=nr;
}
else r[k2++]=g[j];
++j;
}
while ((ind[j-1]==ind[j])&&(j<M));
if (k!=pi) ++nr;
if (k2!=0)
{
while (k2>0)
{
g[k]=r[--k2];
ind2[k++]=nr;
}
++nr;
}
}
}
/*nr=0;
for (i=0;i<N;++i)
if (ind[i]!=ind[i+1]) ++nr;*/
freopen("regiuni.out","w",stdout);
printf("%d",nr);
fclose(stdout);
return 0;
}