Cod sursa(job #320054)

Utilizator mentallysafenotPerian Bogdan mentallysafenot Data 3 iunie 2009 12:51:14
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <cmath>

using namespace std;
fstream f,g;

long flipper[16][16];
int a, b;
int m, n;
long maxi;

long summer(int i)
{
   long sum=0;
  	int a,b;
  	int x;
         
   long aux=0;
   	for(b=0;b<n;b++)
	  {
        int xsum=0;
        int ysum=0;
         for(a=0;a<m;a++)
	     {
                xsum+=flipper[a][b]*(i&(1<<a)?-1:1);
                ysum+=(-1)*flipper[a][b]*(i&(1<<a)?-1:1);
            
        
         }
          if(xsum<ysum)
            sum+=ysum;
         else sum+=xsum;
      }
    
   return sum;
}

int main()
{
  f.open("flip.in",fstream::in);
  f >> m >> n;
  int i,j;
  for(i=0;i<m;i++)
     for(j=0;j<n;j++)
	   {
	    f >> flipper[i][j];
         }		
  
  long aux;
  
  int q;
  q = pow(2,(float)m)+1;
  
  for(i=0;i<q;i++)
      {
	     aux = summer(i);
		 if(aux>maxi)
		    maxi = aux;
	  }
  
  g.open("flip.out",fstream::out);
  g << maxi << "\n";
  g.close();
  return 0;
}