Cod sursa(job #37713)

Utilizator andytrAlexandru Traista andytr Data 25 martie 2007 12:08:22
Problema Regiuni Scor 10
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasa a 10-a Marime 0.87 kb
#include <stdio.h>
#include <string.h>
#define Nmax 1001

struct punct
{int x,y;
};

struct dr
{int a,b,c;
};

punct p[Nmax];
dr d[Nmax];
int n,m,cod[Nmax],fol[Nmax];

void cit()
{FILE *f=fopen("regiuni.in","r");
int i;
fscanf(f,"%d %d",&n,&m);
for(i=1;i<=n;i++)
 fscanf(f,"%d %d %d",&d[i].a,&d[i].b,&d[i].c);
for(i=1;i<=m;i++)
 fscanf(f,"%d %d",&p[i].x,&p[i].y);
fclose(f);
}

int ver(dr d,punct p)
{int a;
a=p.x*d.a+p.y*d.b+d.c;
if(a*d.c>0)
 return -1;
if(a*d.c<0)
 return 1;
return 0;
}

void fl(int v)
{int i;
for(i=1;i<=fol[0];i++)
 if(v==fol[i])
  return;
fol[++fol[0]]=v;
}

void sol()
{int i,j;
for(i=1;i<=n;i++)
 for(j=1;j<=m;j++)
  cod[j]+=ver(d[i],p[j]);
for(i=1;i<=m;i++)
 fl(cod[i]);
}

void scr()
{FILE *f=fopen("regiuni.out","w");
fprintf(f,"%d",fol[0]);
fclose(f);
}

int main()
{cit();
sol();
scr();
return 0;
}