Cod sursa(job #37627)

Utilizator sigridMaria Stanciu sigrid Data 25 martie 2007 11:31:32
Problema Regiuni Scor 80
Compilator cpp Status done
Runda preONI 2007, Runda 4, Clasele 11-12 Marime 0.89 kb
#include<fstream.h>
#define dim 1001
struct drepte
{ int a,b,c;
};
drepte w[dim];
ifstream f("regiuni.in");
ofstream g("regiuni.out");
int n,m;
int mat[dim][dim];
int main()
{f>>n>>m;
 int i,j,k;
 float x,y,yy,xx;
 for(i=1;i<=n;i++)
  f>>w[i].a>>w[i].b>>w[i].c;
 for(k=1;k<=m;k++)
  {f>>x>>y;
   for(i=1;i<=n;i++)
    {if(!w[i].a)
      {yy=(float)((-1)*w[i].c)/w[i].b;
       if(yy>y) mat[k][i]=0;
	else mat[k][i]=1;
       }
     else if(!w[i].b)
	   {xx=(float)((-1)*w[i].c)/w[i].a;
	    if(xx>x) mat[k][i]=0;
	     else mat[k][i]=1;
	   }
      else
       {yy=(float)((-1)*(w[i].c+w[i].a*x))/w[i].b;
	if(yy>y) mat[k][i]=0;
	  else mat[k][i]=1;
       }
    }
  }
int cont=m,ok;
for(i=1;i<m;i++)
{for(k=(i+1);k<=m;k++)
  {ok=1;
   for(j=1;j<=n;j++)
    if(mat[i][j]!=mat[k][j]) {ok=0;break;}
   if(ok) {cont--;break;}
  }
}
g<<cont<<'\n';
g.close();
return 0;
}