Pagini recente » Cod sursa (job #3296635) | Cod sursa (job #881094) | tema | Rating alexandru creanga (wolfdale) | Cod sursa (job #2523499)
#include <stdio.h>
#define N 16
int n, m, MAX;
int mat[N][N], semn[N];
void read()
{
FILE *fin;
fin=fopen("flip.in","r");
int i, j;
fscanf(fin,"%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(fin,"%d",&mat[i][j]);
}
int backtrack(int pos){
if(pos>m){
calc();
return 0;
}
else {
semn[pos]=-1;
backtrack(pos+1);
semn[pos]=1;
backtrack(pos+1);
return 0;
}
}
void calc(){
int sum_l,sum_t;
int i, j;
sum_l=sum_t=0;
for(i=0;i<n;i++){
sum_l=0;
for(j=0;j<m;j++){
sum_l+=mat[i][j]*semn[j];
}
if(sum_l<0)
sum_l*=-1;
sum_t+=sum_l;
}
if(sum_t>MAX)
MAX=sum_t;
}
void show(){
FILE *fout;
fout=fopen("flip.out","w");
fprintf(fout,"%d",MAX);
}
int main()
{
read();
backtrack(0);
show();
return 0;
}