Cod sursa(job #815470)

Utilizator DeepGreenBurcea Iulian-Catalin DeepGreen Data 17 noiembrie 2012 00:05:42
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<iostream>
#include<fstream>
#include<math.h>
using namespace std;
#define MAX 20

ifstream f("flip.in");
ofstream g("flip.out");

void citire( int& n, int& m, long int mat[MAX][MAX]){
	f>>n>>m;
	for (int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			f>>mat[i][j];
}

int max(int b, int a){
	if(a<b){
		return b;
	}
	return a;
}

void comutare(int k,int n, int m,long int mat[MAX][MAX],int s[MAX],int MAXsum){
	long int sumal,suma=0;
	if(k-1==m){
		for(int i=0;i<n;i++){
			sumal=0;
			for(int j=0;j<m;j++){
				sumal+=mat[i][j]*s[j];
			}
			if(sumal<0){
				suma-=sumal;
			}else{
				suma+=sumal;
			}
		}
		MAXsum=max(MAXsum,suma);
			
	}else{
		s[k]=1;
		comutare(k+1,n,m,mat,s,MAXsum);
		s[k]=-1;
		comutare(k+1,n,m,mat,s,MAXsum);
	}
}

int main(){
	 int n,m,s[MAX],MAXsum=0;
	 long int mat[MAX][MAX];
	 citire(n,m,mat);
	 comutare(1,n,m,mat,s,MAXsum);
	 g<<MAXsum;
	 return  0;

}