Pagini recente » Diferente pentru utilizator/blasterz intre reviziile 50 si 51 | Atasamentele paginii Profil tlmgeox_13 | Diferente pentru utilizator/victor.ionescu intre reviziile 27 si 26 | Diferente pentru utilizator/pletutza intre reviziile 3 si 2 | Cod sursa (job #565514)
Cod sursa(job #565514)
#include<fstream.h>
int N, M, sm = 0, smax = 0, V[ 20 ][ 20 ];
void flipN (int ln){
for ( int i = 1; i <= M; i++)
V[ ln ][ i ] *= -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 back (int k){
if(k > N)
sol ();
else{
flipN ( k );
back ( k + 1 );
flipN ( k );
back ( 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 ];
}
}
back ( 1 );
print << smax << '\n';
return 0;
}