Pagini recente » Cod sursa (job #1390734) | Cod sursa (job #610701) | Cod sursa (job #2441412) | Cod sursa (job #1672755) | Cod sursa (job #466390)
Cod sursa(job #466390)
#include <stdio.h>
#define Nmax 17
int n, m ;
int coloana[Nmax] ;
int a[Nmax][Nmax] ;
int best;
void proceseaza() {
int sumaOptima = 0 ;
for ( int i = 1; i <= n; ++i ) {
int sumaLinie = 0 ;
for ( int j = 1; j <= m; ++j ) {
sumaLinie += a[i][j] * coloana[j] ;
}
if ( sumaLinie <= 0 )
sumaOptima -= sumaLinie ;
else
sumaOptima += sumaLinie ;
}
if ( best < sumaOptima )
best = sumaOptima ;
}
int back(int nivel) {
if ( nivel > m )
proceseaza() ;
else {
coloana[nivel] = 1 ;
back(nivel+1) ;
coloana[nivel] = -1 ;
back(nivel+1) ;
}
}
void citeste() {
FILE *f = fopen ( "flip.in", "r" ) ;
fscanf ( f, "%d%d", &n, &m ) ;
for ( int i = 1; i <= n; ++i ) {
for ( int j = 1; j <= m; ++j ) {
fscanf ( f, "%d", &a[i][j] ) ;
}
}
fclose (f) ;
}
void rezolva() {
best = -1234567890 ;
back(1) ;
}
void scrie() {
FILE *f = fopen ( "flip.out", "w" ) ;
fprintf ( f, "%d\n", best ) ;
fclose(f) ;
}
int main () {
citeste() ;
rezolva() ;
scrie() ;
return 0 ;
}