Pagini recente » Cod sursa (job #1702440) | Ciorna | Arhiva de probleme | Cod sursa (job #375843) | Cod sursa (job #1411468)
# include <fstream.h>
# define MAXDIM 17
int N, M, 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;
}