Pagini recente » Cod sursa (job #1494486) | Cod sursa (job #2312598) | Cod sursa (job #3235196) | Cod sursa (job #1086542) | Cod sursa (job #1169460)
#include <cstdio>
//#include <iostream>
using namespace std;
int a[21][21],n,m,s[21][21];
long long summax;
void Schimbalin(int lin){
int i;
for(i = 1; i <= m; i++)
a[lin][i]*=-1;
}
int Calc(){
int sum,i,j;
sum=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
sum+=a[i][j];
return sum;
}
void Col(int col){
int i;
for(i=1;i<=n;i++)
a[i][col]*=-1;
}
int Sumcol(int col){
int i;
long long sum;
sum=0;
for(i=1;i<=n;i++)
sum+=a[i][col];
return sum;
}
void Lemon(){
int i,x,y;
for(i = 1; i <= m; i++)
{
x = Sumcol(i);
Col(i);
y = Sumcol(i);
if(x > y) Col(i);
}
}
void Save(){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
s[i][j] = a[i][j];
}
void Unsave(){
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
a[i][j] = s[i][j];
}
void Flip(int k){
int i;
if(k == n+1)
{
Lemon();
if(Calc() > summax) summax = Calc();
// Unsave();
}
else
{
for(i=1;i<=2;i++)
{
//Save();
if(i == 1)
{
// Lemon();
Flip(k+1);
// Unsave();
}
else if(i == 2)
{
Schimbalin(k);
// Lemon();
Flip(k+1);
}
}
}
}
int main(){
int i,j,q;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{scanf("%d",&a[i][j]);summax+=a[i][j];}
Flip(1);
//Lemon();
// for(i=1;i<=n;i++)
// {
// for(j=1;j<=m;j++)
// printf("%d ",a[i][j]);
// printf("\n");
// }
printf("%d\n",summax);
return 0;
}