Pagini recente » Cod sursa (job #3279853) | Cod sursa (job #2417218) | Cod sursa (job #1128084) | Formatare Textile | Cod sursa (job #1180784)
#include <stdio.h>
#define NM_MAX 16
char lin[ NM_MAX ];
int ma[ NM_MAX ][ NM_MAX ];
int max ( int a, int b ){
if ( a > b ) return a;
return b;
}
int solve ( int n, int m ){
int i, j, sum, sumtot = 0;
for ( i = 0; i < m; i++ ){
sum = 0;
for ( j = 0; j < n; j++ ){
sum += ma[ j ][ i ] * lin[ j ];
}
if ( sum < 0 ) sumtot += -sum;
else sumtot += sum;
}
return sumtot;
}
int bkt ( int n, int m, int pas ){
int a, b;
if ( pas == n - 1 ){
lin[ pas ] = -1;
a = solve ( n, m );
lin[ pas ] = 1;
b = solve ( n, m );
return max ( a, b );
}
lin[ pas ] = -1;
a = bkt ( n, m, pas + 1 );
lin[ pas ] = 1;
b = bkt ( n, m, pas + 1 );
return max ( a, b );
}
int main()
{
FILE *in = fopen ( "flip.in", "r" );
int n, m;
fscanf ( in, "%d%d", &n, &m );
int i, j;
for ( i = 0; i < n; i++ ){
for ( j = 0; j < m; j++ ){
fscanf ( in, "%d", &ma[ i ][ j ] );
}
}
fclose ( in );
int rez = bkt ( n, m, 0 );
FILE *out = fopen ( "flip.out", "w" );
fprintf ( out, "%d", rez );
fclose ( out );
return 0;
}