Pagini recente » Cod sursa (job #1209158) | Cod sursa (job #3290242) | Cod sursa (job #2250095) | Cod sursa (job #143124) | Cod sursa (job #50163)
Cod sursa(job #50163)
#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;
int a[NMAX],b[NMAX],c[NMAX],xx[NMAX],yy[NMAX];
char st[NMAX]={0};
long tre[NMAX],min;
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);
}
k=0;
for(i=1;i<=m;i++)
if(!st[i])
{
k++;st[i]=1;
for(j=i+1;j<=m;j++) if(tre[i]==tre[j]) st[j]=1;
}
fprintf(out,"%d\n",k);
fclose(in);fclose(out);
return 0;
}