Pagini recente » oji_go_11_12 | Cod sursa (job #439777) | Istoria paginii runda/deinceput | Cod sursa (job #120193) | Cod sursa (job #585201)
Cod sursa(job #585201)
//#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int max(int a,int b){
if(a>b)
return a;
return b;
}
int main(int argc, char *argv[])
{
FILE *f = fopen("flip.in","r");
FILE *g = fopen("flip.out","w+");
int n,m;
fscanf(f,"%d %d",&n,&m);
int matrix[n][m];
int i=0,j=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
fscanf(f,"%d",&matrix[i][j]);
int sum = -999999999;
for (i=0;i<(1<<m);i++){
int mask[m];
for(j=0;j<m;j++)
mask[j]=0;
int k=0;
int aux =i;
while(aux!=0){
mask[k++]=aux%2;
aux=aux/2;
}
int auxSum=0;
for(j=0;j<n;j++){
int partialSum=0;
for(k=0;k<m;k++){
if(mask[k]==1)
partialSum+=matrix[j][k]*-1;
else
partialSum+=matrix[j][k];
}
auxSum+=max(partialSum,-partialSum);
}
if(auxSum>sum)
sum = auxSum;
}
fprintf(g,"%d",sum);
printf("%d",sum);
getchar();
fclose(f);
fclose(g);
return 0;
}