Cod sursa(job #257814)

Utilizator AndrewTheGreatAndrei Alexandrescu AndrewTheGreat Data 14 februarie 2009 00:14:59
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream.h>
long max=0;
int v[16][16],m,n,a,i,j;
int numaratoare[16],numaratoare2[16];
long var,t,s;


void start_nr2(int b){
int e;
if(b==n)
	{var=t;
	for(int x=0;x<n;x++)
	   if(numaratoare2[x]==1)var=var-2*v[x][j];
	if(t>var)s=t;
	   else s=var;}
  else for(e=0;e<2;e++)
	  {
	  numaratoare2[b]=e;
	  start_nr2(b+1);
	  }
}
void boom(){
t=0;s=0;
for(i=0;i<n;i++)
   for(j=0;j<m;j++)
      {
      if(numaratoare[j]==0)t+=v[i][j];
	else t-=v[i][j];
      start_nr2(0);
      if(s>max)max=s;
      }
}


void start_nr1(int a){
int r;
if(a==m)boom();
  for(r=0;r<2;r++)
     {
     numaratoare[a]=r;
     start_nr1(a+1);
     }
}

int main(){
ifstream in("flip.in");
ofstream out("flip.out");
in>>n>>m;
for(int c=0;c<n;c++)
   for(int d=0;d<m;d++)
      {
      in>>v[c][d];
      max+=v[c][d];
      }
start_nr1(0);
out<<max;
out.close();
in.close();
return 0;
}