Pagini recente » Cod sursa (job #2622241) | Cod sursa (job #1400138) | Cod sursa (job #2441988) | Cod sursa (job #523102) | Cod sursa (job #1169458)
#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;
}
void Schimbacol(int col){
int i;
for(i = 1; i <= n; i++)
a[i][col]*=-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)
;
else
{
for(i=1;i<=2;i++)
{
if(i == 1)
{
Save();
Lemon();
if(Calc() > summax)
summax = Calc();
else Unsave();
Flip(k+1);
}
else if(i==2)
{
Save();
Schimbalin(k);
Lemon();
if(Calc() > summax)
summax = Calc();
else Unsave();
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);
// 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;
}