Pagini recente » Cod sursa (job #2290155) | Cod sursa (job #1752222) | Cod sursa (job #2554447) | Cod sursa (job #281934) | Cod sursa (job #742120)
Cod sursa(job #742120)
#include <stdio.h>
#include <string.h>
int n, m, k, d;
int st[20], mat[20][20], vec[20];
long long suma = 0, sumamax = 0, ns, i, j;
void citeste(){
freopen( "flip.in", "r", stdin);
freopen( "flip.out", "w", stdout);
scanf( "%d%d", &n, &m );
for( i = 1; i <= n; i++){
for( j = 1; j <=m; j++){
scanf( "%d", &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( d = 1; d <= m; d++ ){
vec[d] += mat[k][d] * st[k-1];
}
}
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 = 1; 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();
}