Cod sursa(job #37681)

Utilizator n_lichkingSentes Norbert n_lichking Data 25 martie 2007 11:52:15
Problema Regiuni Scor 0
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasele 11-12 Marime 0.81 kb
#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; 
}