Cod sursa(job #583609)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 21 aprilie 2011 12:34:50
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
# include <stdio.h>
# define MAXK 10001
# define MAXM 16

int n, m, i, j, v[ MAXK ], a [ MAXM ][ MAXM ], sum = 0;

void suma (){
int i, j, s=0, s1=0;
for ( i = 1; i <= n; i++){
	s = 0;
	for ( j = 1; j <= m; j++) s += ( a[i][j] * v[j]);
	if ( s < 0) s = s * -1;
	s1 += s;
	}
	if ( sum < s1) sum = s1;
}
void backtrack ( int k ){
	if ( k > n )  suma ();
	else{
		for ( int i = -1; i <= 1; i += 2 ){
			v[k] = i;
			backtrack ( k + 1 );
		}
	}
}
int main(){
	freopen ("flip.in", "r", stdin); 	freopen ("flip.out", "w", stdout);
	scanf ("%d%d", &n, &m); 
	for ( i = 1; i <= n; i++ ) for ( j = 1; j <= m; j++ ) scanf ("%d", &a[i][j]);
	backtrack ( 1 );
	printf ("%d\n", sum);
	return 0;
}