Cod sursa(job #1317222)

Utilizator b10nd3Oana Mancu b10nd3 Data 14 ianuarie 2015 18:47:35
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<fstream>



using namespace std;


int a[17][17], col[17],maxx;



void sum(int n,int m){
	int total=0;
	for(int i=1;i<=n;i++){
       int s=0;     
	   for(int j=1;j<=m;j++)
	      s=s+col[j]*a[i][j];
	   if(s<0) total+= s*(-1); //flip line i
	   else    total+=s;   
   }
   if(total>maxx) maxx=total;
}




// back => col[] - columns to be multiplied by -1
void back(int k, int n, int m){
	if(k==m+1) sum(n,m);
	else{
		col[k]=-3;
		while(col[k]<1){
			col[k]+=2;
			back(k+1,n,m);
		}
	}
}



int main(){

int n,m;

ifstream in; ofstream out;
in.open("flip.in"); out.open("flip.out");
out.clear();

in>>n>>m; 
maxx=16*16*1000000*(-1);

for(int i=1;i<=n;i++)
   for(int j=1;j<=m;j++)
      in>>a[i][j];
      
back(1,n,m);    
out<<maxx;  

return 0;	
}