Pagini recente » Cod sursa (job #1247413) | Cod sursa (job #1580032) | Cod sursa (job #928137) | Cod sursa (job #2294839) | Cod sursa (job #37680)
Cod sursa(job #37680)
#include<stdio.h>
int n,m,nrreg;
int p[50][500];
struct dreapta {int a,b,c;} v[1000];
FILE *f=fopen("regiuni.in","r");
FILE *g=fopen("regiuni.out","w");
void poz(int x,int y)
{
int i,j,sw;
int tmp[500];
for(i=1;i<=n;i++)
if(v[i].a*x+v[i].b*y+v[i].c<0)
tmp[i]=-1;
else tmp[i]=1;
for(i=1;i<=nrreg;i++)
{sw=0;
for(j=1;j<=n;j++)
if(tmp[j]!=p[i][j])
sw=1;
if(!sw)
break;
}
if(sw||!nrreg)
{nrreg++;
for(j=1;j<=n;j++)
p[nrreg][j]=tmp[j];
}
}
void cit()
{register int i;
int x,y;
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=n;i++)
fscanf(f,"%d%d%d",&v[i].a,&v[i].b,&v[i].c);
for(i=1;i<=m;i++)
{fscanf(f,"%d%d",&x,&y);
poz(x,y);
}
}
int main()
{
cit();
fprintf(g,"%d",nrreg);
fcloseall();
return 0;
}