Cod sursa(job #1105435)

Utilizator s1mpMihai Alexandru s1mp Data 11 februarie 2014 20:04:14
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<iostream>
#include<fstream>

#define Nmax 17

using namespace std;

int N,M,A[Nmax][Nmax],X[Nmax];
int suma_maxima;

int suma() {
	int s1 = 0;
	for(int j = 1; j <= M; j++) {
		int s = 0;
		for(int i = 1; i <= N; i++) {
			s+=A[i][j]*X[i];
		}
		if (s<0) {
			s = -s;
		}
		s1 += s;
	}
	return s1;
}

void bk(int k) {
	if (k == N+1) {
		int s = suma();
		if (s > suma_maxima) {
			suma_maxima = s;
		}
	} else {
		X[k] = -1;
		bk(k+1);
		X[k] = 1;
		bk(k+1);
	}
}

int main() {
	ifstream f("flip.in");
	ofstream g("flip.out");
	f>>N;
	f>>M;
	for(int i = 1; i <= N; i++) {
		for(int j = 1; j <= M; j++) {
			f>>A[i][j];
		}
	}
	bk(1);
	g<<suma_maxima;
	f.close();
	g.close();
	return 0;
}