Cod sursa(job #573575)

Utilizator andreea29Iorga Andreea andreea29 Data 6 aprilie 2011 13:17:28
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream.h>
#include <iostream.h>
long a[17][17],max=-1000000,sum=0;
int v[17];
int m,n;
int flip(int k)
{int i;
   for(i=1;i<=n;i++)
    a[k][i]=0-a[k][i];}
int main()
{
  ifstream f("flip.in");
  ofstream h("flip.out");
  int i, j, k, OK;
  long s;
  f>>m;
  f>>n;
  for(i=1;i<=m;i++)
   for(j=1;j<=n;j++)
    f>>a[i][j];
   k=1;
  v[k]=-1;
  while (k>0)
  {
	  OK=0;
		while((v[k]<1)&&(OK==0))
		 {v[k]=v[k]+1;
		   if (v[k]) 
			   flip(k);
		OK=1;}
	if(OK==1)
      if(m==k)
      {sum=0;
		for(i=1;i<=n;i++)
		 {s=0;
	   for(j=1;j<=m;j++)
	    s=s+a[j][i];
	   if(s<0) 
		   sum=sum-s;
	   else 
		   sum=sum+s;}
	 if(sum>max) 
		 max=sum;}
      else
       v[k+1]=-1;
     else
     {k=k-1;
	if(v[k]) 
	flip(k);}
	 
  }
  
  h<<max;
  f.close();
  h.close();
  return 0;
}