Cod sursa(job #1508805)

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



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


void preflip() {
	int x, a = 1;
	a = a << m + n - 1;
	--a;
	while (a >= 0) {
		x = flip(a);
		if (x > MAX) MAX = x;
		--a;
	}
}



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]);
		}
	};
	preflip();
	printf("%d", MAX);
	return 0;
}