Pagini recente » Cod sursa (job #2823385) | Cod sursa (job #1243692) | Cod sursa (job #1413614) | Cod sursa (job #1874191) | Cod sursa (job #304318)
Cod sursa(job #304318)
#include <string.h>
#include <stdio.h>
#define N 300
int compare(int a[],int b[],int n)
{int i;
for (i=0;i<n;i++)
{if(a[i]!=b[i])return 0;
}
return 1;
}
int main ()
{int bit[N][126];
int n,m,i,j,p,q,a2,b2,c2,nr;
int a[N],b[N],c[N],x[N],y[N],mark[N];
freopen("regiuni.in","r",stdin);
freopen("regiuni.out","w",stdout);
scanf("%d%d",&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]);
}
for (i=1;i<=n;i++) //drepte
{p=i/8;q=i%8;
if(a[i]!=0)
{a2=a[i];b2=b[i];c2=c[i];
for (j=1;j<=m;j++) //puncte
{if((float)(-c2-b2*y[j])/(float)a2<(float)x[j])
{bit[j][p]+=1<<q;
}
}
}
else
{a2=a[i];b2=b[i];c2=c[i];
for (j=1;j<=m;j++) //puncte
{if((float)(-c2-a2*x[j])/(float)b2<(float)y[j])
{bit[j][p]+=1<<q;
}
}
}
}
for (i=1,nr=0;i<=m;i++)
{if(mark[i]==0)
{mark[i]=1;
nr++;
for (j=i+1;j<=m;j++)
{if(mark[j]==0&&compare(bit[i],bit[j],n/8+1)==1)
{mark[j]=1;
}
}
}
}
printf("%d",nr);
return 0;
}