Pagini recente » Cod sursa (job #3195164) | Cod sursa (job #1053452) | Cod sursa (job #3270674) | Cod sursa (job #2560756) | Cod sursa (job #742116)
Cod sursa(job #742116)
#include <iostream.h>
#include <stdio.h>
#include <string.h>
int n, m, k, i, j, ns;
int st[20], mat[20][20], vec[20];
long long suma = 0, sumamax = 0;
void citeste(){
freopen( "flip.in", "r", stdin);
freopen( "flip.out", "w", stdout);
cin >> n; cin >> m;
for( i = 1; i <= n; i++){
for( j = 1; j <=m; j++){
cin >> mat[i][j];
sumamax += mat[i][j];
}
}
}
void scrie(){
printf("%lld ", sumamax);
}
void calcul(){
memset( vec, 0, sizeof(vec) );
for( k = 1 ; k <= n; k++){
for( j = 1; j <= m; j++ ){
vec[j] += mat[k][j] * st[j];
}
}
suma = 0;
for( k = 1; k <= m; k++ ){
if( vec[k] < 0 ){
suma += vec[k] * (-1);
}else{
suma += vec[k];
}
}
if( suma > sumamax ){
sumamax = suma;
}
}
void genereaza(){
ns = ( 1 << n ) - 1;
for( i = 0; i <= ns ; ++i){
memset( st, 0, sizeof(st) );
for( j = 0; j < n; ++j ){
if( i & ( 1 << j ) ){
st[j] = -1;
}else{
st[j] = 1;
}
}
calcul();
}
}
int main(){
citeste();
genereaza();
scrie();
}