Pagini recente » Cod sursa (job #309761) | Cod sursa (job #1977424) | Cod sursa (job #2973275) | Cod sursa (job #2821834) | Cod sursa (job #218142)
Cod sursa(job #218142)
#include <stdio.h>
FILE *f;
int m,n,sm;
int a[18][18];
int b[18];
int max(int a1,int a2){
return a1>a2?a1:a2;
}
int sum(){
int s=0;
int i,j;
for (i=1;i<=m;i++){
if (b[i]){
for (j=1;j<=n;j++){
a[j][i]*=-1;
}
}
}
for(i=1; i<=n;i++){
int sl=0;
for(j=1;j<=m;j++){
sl+=a[i][j];
}
if (sl<0){
sl*=-1;
}
s+=sl;
}
for (i=1;i<=m;i++){
if (b[i]){
for (j=1;j<=n;j++){
a[j][i]*=-1;
}
}
}
return s;
}
int back(int p){
if (p>m) {sm=max(sum(),sm);}
else {for (b[p]=0;b[p]<=1;b[p]++){
back(p+1);
}
}
return sm;
}
int main(void){
f=fopen("flip.in","r");
fscanf(f,"%d %d",&n,&m);
int i,j;
for (i=1;i<=n;i++){
for (j=1;j<=m;j++){
fscanf(f,"%d",&a[i][j]);
}
}
fclose(f);
f=fopen("flip.out","w");
fprintf(f,"%d",back(1));
fclose(f);
}