Pagini recente » Cod sursa (job #980366) | Cod sursa (job #2885567) | Cod sursa (job #803182) | Cod sursa (job #316003) | Cod sursa (job #345712)
Cod sursa(job #345712)
#include <cstdio>
#define file_in "regiuni.in"
#define file_out "regiuni.out"
#define Nmax 1001
int n,mm,i,j,k;
int a[Nmax],b[Nmax],c[Nmax];
int x[Nmax],y[Nmax];
int *v[Nmax];
int nrr,d;
int p[Nmax];
int m[Nmax];
int main()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n,&mm);
for (i=1;i<=n;++i)
scanf("%d %d %d", &a[i], &b[i],&c[i]);
v[1]=new int [mm+1];
v[1][0]=0;
for (i=1;i<=mm;++i)
{
scanf("%d %d", &x[i], &y[i]);
v[1][++v[1][0]]=i;
}
//aloca dinamic
//for (i=1;i<=mm;++i)
//{
/*v[1]=(int *)realloc(v[1], sizeof(int));
v[1][0]=0;*/
//}
/*v[1]=new int [mm+1];
v[1][0]=0;
for (i=1;i<=mm;++i)
{
v[1][0]++;
//v[1]=(int *)realloc(v[1], (v[1][0]+1)*sizeof(int));
v[1][v[1][0]]=i;
}*/
nrr=1;
for (i=1;i<=n;++i)
for (j=1;j<=nrr;++j)
{
p[0]=m[0]=0;
for (k=1;k<=v[j][0];++k)
{
d=a[i]*x[v[j][k]]+b[i]*y[v[j][k]]+c[i];
if (d>0)
p[++p[0]]=v[j][k];
else
m[++m[0]]=v[j][k];
}
if (p[0]!=0 && m[0]!=0)
{
delete(v[j]);
/*v[j]=(int *)realloc(v[j], sizeof(int));
v[j][0]=0;
v[j][0]++;
v[j]=(int *)realloc(v[j], (p[0]+1)*sizeof(int));*/
v[j]=new int [p[0]+1];
v[j][0]=p[0];
for (k=1;k<=p[0];++k)
v[j][k]=p[k];
nrr++;
/*v[nrr]=(int *)realloc(v[nrr], sizeof(int));
v[nrr][0]=0;
v[nrr][0]++;
v[nrr]=(int *)realloc(v[nrr], (m[0]+1)*sizeof(int));*/
v[nrr]=new int [m[0]+1];
v[nrr][0]=m[0];
for (k=1;k<=m[0];++k)
v[nrr][k]=m[k];
//printf("kkkkkkkkkkkkkkkkkt\n");
}
}
printf("%d", nrr);
fclose(stdin);
fclose(stdout);
return 0;
}