Cod sursa(job #566341)

Utilizator antonioteoZait Teodor Antonio antonioteo Data 28 martie 2011 21:29:17
Problema Elimin Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
# include <fstream.h>
# define MAXDIM 17
int M, N, smax = 0, sm = 0;
int V[ MAXDIM ][ MAXDIM ];
void flip ( int linie ){
	for ( int j = 1; j <= M; j++)
		V[ linie ][ j ] *= -1;
}
void sol (){
	int s = 0, i, j;
	sm = 0;
	for ( i = 1; i <= M; i++ ){
		s = 0;
		for ( j = 1; j <= N; j++ )
			s += V[ j ][ i ];
		if ( s < 0 ) 
			s =- s;
		sm += s;
	}
	if ( sm > smax ) 
		smax = sm;
}
void backtrack ( int k ){
	if ( k > N )
		sol ();
	else{
		flip ( k );
		backtrack ( k + 1 );
		flip ( k );
		backtrack ( k + 1);
	}
}
int main(){
	ifstream read ("flip.in"); ofstream print ("flip.out");
	read >> N >> M;  
	for ( int i = 1; i <= N; i++ ) 
		for ( int j = 1; j <= M; j++ ) 
			read >> V[ i ][ j ];
	backtrack ( 1 );
	print << smax << '\n';
	return 0;
}