Pagini recente » agagahash | Statistici Murariu Livia (MurariuLivia) | Cod sursa (job #671683) | Cod sursa (job #1342349) | Cod sursa (job #1631776)
#include<stdio.h>
#include<cstdlib>
long a[20][20], smax;
int n, m;
void citire(){
FILE *f = fopen("flip.in", "r");
fscanf(f, "%d%d", &n, &m);
int i,j;
for(i = 0; i < n; i++)
for( j = 0; j < m; j++)
fscanf(f, "%ld", &(a[i][j]) );
fclose(f);
}
void facesuma(){
int i,j;
long suma;
suma = 0;
for( i = 0; i < n; i++)
for( j = 0; j < m; j++)
suma += a[i][j];
if( smax < suma)
smax = suma;
}
void schimbalinie(int linie){
int j;
for( j = 0; j < m; j++)
a[linie][j] = -a[linie][j];
}
void schimbacol(int col){
int i;
for( i = 0; i < n; i++)
a[i][col] = -a[i][col];
}
void facesuma2(){
long suma, sumacol;
suma = 0;
int i,j;
for( j = 0; j < m; j++){
sumacol = 0;
for( i = 0; i < n; i++)
sumacol += a[i][j];
suma += abs(sumacol);
}
if( smax < suma)
smax = suma;
}
void backtracking(int k){
if( k == n){
facesuma2();
return;
}
backtracking(k + 1);
// if( k < n){
schimbalinie(k);
// }
// else
// schimbacol(k - n);
backtracking(k + 1);
}
int main(){
citire();
smax = 0;
backtracking(0);
FILE *f = fopen("flip.out", "w");
fprintf(f, "%ld", smax);
fclose(f);
return 0;
}