Pagini recente » Cod sursa (job #2018875) | Cod sursa (job #137849) | Cod sursa (job #742458) | Cod sursa (job #1541350) | Cod sursa (job #17288)
Cod sursa(job #17288)
#include <stdio.h>
#include <memory.h>
#define NMAX 100
int t[NMAX][NMAX], n, m, v[1000], h = 0, s = -30000;
void read()
{
int i, j;
scanf( "%d %d\n", &n, &m );
for( i = 0; i < n; ++i )
{
for( j = 0; j < m; ++j )
{
scanf( "%d ", &t[i][j] );
}
scanf( "\n" );
}
}
void writesteps()
{
int i;
for( i = 0; i < n; ++i )
printf( "%d ", v[i] );
printf( "\n" );
}
void max()
{
int i, j, col[NMAX], invers[NMAX], sform = 0;
memset( col, 0, sizeof(col) );
memset( invers, 0, sizeof(invers) );
for( i = 0; i < n; ++i )
{
for( j = 0; j < m; ++j )
{
col[j] += ( v[i]*t[i][j] );
invers[j] += ( (-1)*v[i]*t[i][j] );
}
}
for( i = 0; i < m; ++i )
{
if( col[i] > invers[i] )
sform += col[i];
else
sform += invers[i];
}
if( sform > s )
s = sform;
}
void back( int step )
{
if( step == n )
{
max();
//writesteps();
}
else
{
v[step++] = -1;
back( step );
--step;
v[step++] = 1;
back( step );
--step;
}
}
int main()
{
freopen( "flip.in", "r", stdin );
freopen( "flip.out", "w", stdout );
read();
back( 0 );
printf( "%d\n", s );
fclose( stdin );
fclose( stdout );
return 0;
}