Cod sursa(job #40118)

Utilizator skyelHighScore skyel Data 27 martie 2007 11:27:50
Problema Dezastru Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream.h>   
#include <string>   
#define input "regiuni.in"
#define output "regiuni.out"
#define Nmax 1005
#define Mmax 1005

//using namespace std;

long sec[Mmax][33],n,m,z;

int cmp(long x[Mmax],long y[Mmax])
	 {
    int i;
	 for (i=0;i<=((n/30)+1);i++)
		  {
		  if (x[i]!=y[i])
			  return 1;
		  }
	 return 0;
	 }

int main()
	{
	ifstream fin(input);
	ofstream fout(output);
   long j,s;
   int i,k,ok,t,a[Mmax],b[Mmax],c[Mmax],dx[Nmax],dy[Nmax],h;
	fin>>n>>m;
	k=0;
	for(i=0;i<n;i++)
		fin>>a[i]>>b[i]>>c[i];	
	for(i=0;i<m;i++)
		fin>>dx[i]>>dy[i];
   for(i=0;i<m;i++)
		{
		for(j=0;j<n;j++)
			{
			if (j%30==0)
				{
				sec[i][j/30]=z;
				z=0;
				}
			s=dx[i]*a[j]+dy[i]*b[j]+c[j];
			if(a[j]*b[j]!=0)
				{
				if(s>0)
					z+=1<<(j%30);
				}
			else
				{
				if(s<0)
					z+=1<<(j%30);
				}
			}
		sec[i][(n/30)+1]=z;
		z=0;
		ok=1;
		for (t=0;t<i;t++)
			 {
			 if (!cmp(sec[i],sec[t]))
             {
             ok=0;
             break;
             }
          }     
      if (ok)
         k++;                        
      }
	fout<<k<<"\n";
	return 0;
	}