Pagini recente » Cod sursa (job #333633) | Cod sursa (job #684868) | Cod sursa (job #165295) | Cod sursa (job #2269665) | Cod sursa (job #42344)
Cod sursa(job #42344)
#include <stdio.h>
struct dr { int a,b,c; };
dr drepte[1001];
char grupe[1001][130],aux[130];
int k,x,y,gas;
int n,m,i,j,nr;
FILE *fin,*fout;
int strcmp(char a[],char b[])
{
int in=0;
for (in=0;in<=129;in++)
if (a[in]!=b[in])
return 1;
return 0;
}
void setbit(char a[],int bt)
{ int r=bt%8;
int in=bt/8;
a[in]|=1<<(8-r);
}
int main()
{
fin=fopen("regiuni.in","rt");
fout=fopen("regiuni.out","wt");
fscanf(fin,"%d %d\n",&n,&m);
for (i=0;i<n;i++)
fscanf(fin,"%d %d %d\n",&drepte[i].a,&drepte[i].b,&drepte[i].c);
for (i=0;i<m;i++)
{ fscanf(fin,"%d %d\n",&x,&y);
j=0;
for (j=0;j<129;j++)
aux[j]=0;
nr=1;
for (j=0;j<n;j++)
if (drepte[j].a*x+drepte[j].b*y+drepte[j].c>0)
setbit(aux,nr++);
gas=0;
for (j=0;j<k;j++)
if (strcmp(aux,grupe[j])==0)
{gas=1;
break;
}
if (gas==0)
{
j=0;
for (j=0;j<129;j++)
grupe[k][j]=aux[j];
grupe[k][j]=0;
k++;
}
}
fprintf(fout,"%d\n",k);
return 0;
}