Pagini recente » Cod sursa (job #153124) | Cod sursa (job #933524) | Cod sursa (job #1766033) | Cod sursa (job #513325) | Cod sursa (job #50140)
Cod sursa(job #50140)
#include <cstdio>
#define INF "regiuni.in"
#define OUF "regiuni.out"
#define NMAX 1001
using namespace std;
/*struct trie
{
int id,t;
};*/
int main()
{
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
register int i,j,k,n,m,min;
int a[NMAX],b[NMAX],c[NMAX],xx[NMAX],yy[NMAX];
char st[2048]={0};
int tre[NMAX];
fscanf(in,"%d %d",&n,&m);
// for(i=1;i<=n;i++) printf("%d",mask[i]);
for(i=1;i<=n;i++)
fscanf(in,"%d %d %d",a+i,b+i,c+i);
for(i=1;i<=m;i++)
{
fscanf(in,"%d %d",xx+i,yy+i);
tre[i]=1;
}
for(i=1;i<=n;i++)
{
min=(1<<31);
for(j=1;j<=m;j++)
{
if(xx[j]*a[i]+yy[j]*b[i]+c[i]>0) tre[j]=2*tre[j]+1;
else tre[j]=2*tre[j];
if(tre[j]<min) min=tre[j];
}
if(min>1) for(j=1;j<=m;j++) tre[j]-=(min-1);
}
for(i=1;i<=m;i++) st[tre[i]]=1;
min=0;
for(i=1;i<2048;i++) if(st[i]) min++;
fprintf(out,"%d\n",min);
fclose(in);fclose(out);
return 0;
}