Cod sursa(job #88126)

Utilizator pandaemonAndrei Popescu pandaemon Data 30 septembrie 2007 14:14:39
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include <iostream.h>
#include <fstream.h>

fstream IN("flip.in",ios::in),OUT("flip.out",ios::out);

int n,m,i,j; long max=-10000000;
long mat[17][17];

int Lalg()
{long sneg=0,spoz=0,s=0;
 for(i=1;i<=n;i++) {spoz=0; sneg=0;
 for(j=1;j<=m;j++)  if(mat[i][j]>0) spoz+=mat[i][j];
		    else sneg+=mat[i][j];

if(sneg*-1>spoz) for(j=1;j<=m;j++) {mat[i][j]*=-1; s+=mat[i][j];}
else s+=spoz+sneg; }

if(s>max) max=s;
}


int back(int col,int var)
{
if(col==m+1) Lalg();
else {var=0; while(var<2)
{back(col+1,var); for(i=1;i<=n;i++) mat[i][col]*=-1; var++; }}
 }  //


int main()
{IN>>n>>m; cout<<endl;
 for(i=1;i<=n;i++)
 for(j=1;j<=m;j++) IN>>mat[i][j];
back(1,0); OUT<<max;}