Cod sursa(job #1014324)

Utilizator IoannaPandele Ioana Ioanna Data 22 octombrie 2013 14:52:26
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#define NMAX 17
#define INF 256000000
using namespace std;

int a[NMAX][NMAX];
int maxim = -INF;
int m, n;

void read() {
	ifstream in("flip.in");
	in>>n>>m;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < m; j++)
			in>>a[i][j];
}

void solve() {
	int lim = 1<<n;
	int flipped, notFlipped;
	int sum;
	for (int k = 0; k < lim; k++) {
		sum = 0;
		for (int i = 0; i < n; i++){
			flipped = 0;
			notFlipped = 0;
			for (int j = 0; j < m; j++)
				if (k & (1<<j)) {
					flipped += a[i][j];
					notFlipped -= a[i][j];
				} else {
					flipped -= a[i][j];
					notFlipped += a[i][j];
				}
			if (flipped >= notFlipped) {
				sum += flipped;
			} else {
				sum += notFlipped;
			}
		}
		if (maxim < sum) maxim = sum;
	}
}

int main() {
	ofstream out("flip.out");
	out<<maxim<<"\n";
	return 0;
}