Cod sursa(job #339679)

Utilizator Bogdan_CCebere Bogdan Bogdan_C Data 10 august 2009 22:41:38
Problema Jocul Flip Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<fstream>
using namespace std;
int st[17],k,n,m,a[17][17],ev,as,bsum,csum,c[17][17];
ifstream in("flip.in");
ofstream out("flip.out");
void init()
{st[k]=-1;    
     }
int succesor()
{if(st[k]<1) {st[k]++;return 1;}
 return 0;
    
    }     
int valid()
{return 1;}
int solutie()
{return n==k;
    
    }   
void tipar()
{for(int i=1;i<=n;i++)
  for(int j=1;j<=m;j++)
 c[i][j]=a[i][j];
     for(int i=1;i<=n;i++)
  if(st[i]==0) for(int j=1;j<=m;j++) c[i][j]*=(-1);
  for(int j=1;j<=m;j++)
   {int s=0;
          for(int i=1;i<=n;i++) 
s+=c[i][j];
if(s<0) for(int i=1;i<=n;i++) c[i][j]*=(-1);
s=0; 
for(int i=1;i<=n;i++)
  for(int j=1;j<=m;j++)
   s+=c[i][j];
 if(s>bsum)  bsum=s;
}
     
     }   
void back()
{k=1;init();
 while(k>=1)
  {int as=succesor();
    if(as) if(solutie()) tipar();
            else{k++;init();}
     else k--;       
            
            
            }
     
     }
int main()

{in>>n>>m;
for(int i=1;i<=n;i++)
 for(int j=1;j<=m;j++)
  in>>a[i][j];
 bsum=-9999999; 
back();
out<<bsum;
    
    return 0;}