Pagini recente » Cod sursa (job #1514621) | Cod sursa (job #1389910) | Cod sursa (job #1141928) | Cod sursa (job #2956505) | Cod sursa (job #160286)
Cod sursa(job #160286)
#include <cstdio>
#include <cstdlib>
int main( int argc, char *argv[] )
{
int mat[16][16];
FILE *fin = fopen( "flip.in", "r" );
int n, m;
fscanf( fin, "%d %d", &n, &m );
for ( int i = 0; i < n; i++ )
for ( int j = 0; j < m; j++ )
if ( n < m )
fscanf( fin, "%d", &mat[i][j] );
else
fscanf( fin, "%d", &mat[j][i] );
fclose( fin );
if ( n > m )
{
int t = n;
n = m;
m = t;
}
int nr = 1 << n;
int max = -1000;
for ( int i = 0; i < nr; i++ )
{
int semn[16];
int ii = i;
for ( int j = 0; j < n; j++ )
{
semn[16] = 1 - (( ii & 1 ) << 1);
ii >>= 1;
}
int val = 0;
for ( int j = 0; j < m; j++ )
{
int inter = 0;
for ( int k = 0; k < n; k++ )
inter += mat[k][j] * semn[k];
if ( inter < 0 )
val -= inter
else
val += inter;
}
if ( max < val )
max = val;
}
FILE *fout = fopen( "flip.out", "w" );
fprintf( fout, "%d\n", max );
fclose( fout );
return 0;
}