Cod sursa(job #1508813)

Utilizator George-AndreiGeorge Andrei George-Andrei Data 22 octombrie 2015 23:40:16
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
int m, n, st[40];
long int v[20][20], MAX;



int flip() {
	int i, j, k = 0, l, s = 0;
	for (i = n - 1; i >= 0; i--) {
		l = 0;
		for (j = n; j < m + n; j++) {
			if (st[i] ^ st[j]) s += -1 * v[k][l];
			else s += v[k][l];
			++l;
		};
		++k;
	}
	return s;
}

void back(int p) {
	int val, i, x;
	for (val = 0; val < 2; val++) {
		st[p] = val;
		if (st[0] == 1)break;
		if (p == m + n - 1) {
			x = flip();
			if (x > MAX) MAX = x;
		}
		else back(p + 1);
	}


}

int main() {
	freopen("flip.in", "r", stdin);
	freopen("flip.out", "w", stdout);
	scanf("%d", &n);
	scanf("%d", &m);
	int i, j;
	for (i = 0; i < n; i++) {
		for (j = 0; j < m; j++) {
			scanf("%d", &v[i][j]);
		}
	};

	back(0);
	printf("%d", MAX);

	return 0;
}