Cod sursa(job #362005)

Utilizator digital_phreakMolache Andrei digital_phreak Data 7 noiembrie 2009 16:27:06
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <cstdlib>
#define MAXN 17
using namespace std;

int N,M;
int A[MAXN][MAXN];
int Semn[MAXN];
int Smax;

ifstream fin("flip.in");
ofstream fout("flip.out");

void check() {
	int stot,slin,i,j;
	stot = 0;
	for (i=0;i<M;++i) {
		slin = 0;
		for (j=0;j<N;++j) slin += A[j][i] * Semn[j];
		if (slin < 0) slin *= -1;
		stot += slin;
	}
	if (stot > Smax) Smax = stot;
}

void back(int p) {
	if (p == N) {
		check();
	} else {
		Semn[p] = 1;
		back(p+1);
		Semn[p] = -1;
		back(p+1);
	}
}

int main() {	
	Smax = 0;
	fin >> N >> M;
	int i,j;
	for (i=0;i<N;++i)
		for (j=0;j<M;++j) 
			fin >> A[i][j];
	
	back(0);
	
	fout << Smax << "\n";
	
	fin.close();
	fout.close();
	
	return 0;
}