Pagini recente » Cod sursa (job #354562) | Cod sursa (job #1267111) | Cod sursa (job #1020403) | Cod sursa (job #2341744) | Cod sursa (job #610526)
Cod sursa(job #610526)
#include <stdio.h>
#define NMax 32
const char IN[]="flip.in",OUT[]="flip.out";
int N,M;
int a[NMax][NMax];
int solve()
{
int i,j,mask,sum,plus,minus,ret=0;
for (mask=0;mask<(1<<N);++mask)
{
sum=0;
for (i=0;i<N;++i) if ( mask&(1<<i) )
for (j=0;j<M;++j)
a[i][j]=-a[i][j];
for (i=0;i<M;++i)
{
for (j=0,plus=0,minus=0;j<N;++j)
plus+=a[j][i],minus-=a[j][i];
sum+= plus>minus ? plus : minus;
}
for (i=0;i<N;++i) if ( mask&(1<<i) )
for (j=0;j<M;++j)
a[i][j]=-a[i][j];
ret= sum>ret ? sum : ret;
}
return ret;
}
int main()
{
int i,j;
freopen(IN,"r",stdin);
scanf("%d%d",&N,&M);
for (i=0;i<N;++i)
for (j=0;j<M;++j)
scanf("%d",&a[i][j]);
fclose(stdin);
freopen(OUT,"w",stdout);
printf("%d\n",solve());
fclose(stdout);
return 0;
}