Pagini recente » Cod sursa (job #2070872) | Cod sursa (job #1212433) | Diferente pentru problema/zigzag intre reviziile 10 si 11 | Cod sursa (job #2975937) | Cod sursa (job #2828611)
#include <stdio.h>
#include <stdlib.h>
#define NMAX 16
#define MMAX 15
int a[NMAX][MMAX];
int n,m,max;
void bkt(int i){
int j,s;
if(i == n+m){
s = 0;
for(i = 0; i < n; i++){
for(j = 0; j < m; j++)
s += a[i][j];
}
if(s > max){
max = s;
}
} else{
if(i < n){
for(j = 0; j < m; j++)
a[i][j] = -a[i][j];
bkt(i+1);
for(j = 0; j < m; j++)
a[i][j] = -a[i][j];
} else{
for(j = 0; j < n; j++)
a[j][i-n] = -a[j][i-n];
bkt(i+1);
for(j = 0; j < n; j++)
a[j][i-n] = -a[j][i-n];
}
bkt(i+1);
}
}
int main(){
int i,j;
FILE *fin, *fout;
fin = fopen("flip.in","r");
fscanf(fin,"%d%d",&n,&m);
for(i = 0; i < n; i ++){
for(j = 0; j < m; j ++){
fscanf(fin,"%d",&a[i][j]);
}
}
fclose(fin);
max = 0;
bkt(0);
fout = fopen("flip.out","w");
fprintf(fout,"%d\n",max);
fclose(fout);
return 0;
}