Pagini recente » Cod sursa (job #992094) | Cod sursa (job #511564) | Cod sursa (job #1167845) | Cod sursa (job #3273706) | Cod sursa (job #37614)
Cod sursa(job #37614)
#include <stdio.h>
typedef struct punct{int x,y;};
typedef struct dreapta{int a,b,c;};
punct p[1001];
dreapta d[1001];
int reg[1001];
FILE *f,*g;
int main()
{
int n,m,i,j,r,k,ok,ok2;
f=fopen("regiuni.in","rt");
g=fopen("regiuni.out","wt");
fscanf(f,"%d %d\n",&n,&m);
for (i=1;i<=n;i++)
fscanf(f,"%d %d %d\n",&d[i].a,&d[i].b,&d[i].c);
for (i=1;i<=m;i++)
fscanf(f,"%d %d\n",&p[i].x,&p[i].y);
r=1;
reg[1]=1;
for (i=1;i<=m;i++)
{
if (!reg[i])
reg[i]=++r;
for (j=i+1;j<=m;j++)
{
ok2=1;
for (k=1;k<=n;k++)
if ((p[i].x*d[k].a+p[i].y*d[k].b+d[k].c)*(p[j].x*d[k].a+p[j].y*d[k].b+d[k].c)<0)
{
ok2=0;
break;
}
if (ok2)
reg[j]=reg[i];
}
}
fprintf(g,"%d\n",r);
fclose(f);
fclose(g);
return 0;
}