Pagini recente » Cod sursa (job #2384167) | Cod sursa (job #43349) | Cod sursa (job #1642352) | Cod sursa (job #1145921) | Cod sursa (job #232933)
Cod sursa(job #232933)
#define max(i,j) ( i > j )? (i) : (j)
#include <stdio.h>
#define N_MAX 16
#define M_MAX 16
void read();
void solve();
void write();
int M, N, board[N_MAX][M_MAX],answer, tmp[N_MAX];
int main()
{
read();
solve();
write();
return 0;
}
void read()
{
int i,j;
FILE * f;
f = fopen("flip.in","r");
fscanf(f,"%d %d",&N, &M);
for(i = 0; i < N; ++i)
for(j = 0; j < M; ++j)
fscanf(f,"%d",board[i] + j);
fclose(f);
}
void solve()
{
int i,bst,k,j,sum;
for(i = 0; i < (1 << M); ++ i){
bst = 0;
for(j = 0; j < M; ++j){
tmp[j]= (i & (1 << j) ? 1: 0); //?
//printf("%d %d %d %d\n",i,j,tmp[i],1 << j);
}
for(j = 0; j < N; ++j)
{
sum = 0;
for(k = 0; k < M; ++k){
sum += (tmp[k] ? -1 : 1) * board[j][k];
}
bst += max(sum, -sum);
//printf("%d\n",bst);
}
answer = max(answer,bst);
}
}
void write()
{
FILE * f;
f = fopen("flip.out","w");
fprintf(f,"%d",answer);
fclose(f);
}