Pagini recente » Cod sursa (job #1953822) | Cod sursa (job #58441) | Cod sursa (job #2628377) | Cod sursa (job #3266782) | Cod sursa (job #954200)
Cod sursa(job #954200)
#include <cstdio>
using namespace std;
int a[30][30],b[30][30],gen1[30],gen2[30];
int main()
{
int n,m,i,j;
long long int s,maxim,cs;
freopen ("flip.in","r",stdin);
freopen ("flip.out","w",stdout);
scanf("%d", &n);scanf("%d", &m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
scanf("%d", &a[i][j]);
maxim=0;
while(gen1[0]==0)
{
s=0;
for(i=1;i<=n;i++)
if(gen1[i]==0)
for(j=1;j<=m;j++)
b[i][j]=a[i][j];
else
for(j=1;j<=m;j++)
b[i][j]=-a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s+=b[i][j];
for(i=0;i<=m;i++)
gen2[i]=0;
cs=s;
while(gen2[0]==0)
{
s=cs;
for(i=1;i<=m;i++)
if(gen2[i]==1)
for(j=1;j<=n;j++)
s=s-b[j][i]-b[j][i];
if(s>maxim)
maxim=s;
i=m;
while(gen2[i]==1)
gen2[i--]=0;
gen2[i]++;
}
i=n;
while(gen1[i]==1)
gen1[i--]=0;
gen1[i]++;
}
printf("%d\n", maxim);
return 0;
}