Pagini recente » Cod sursa (job #2652654) | Cod sursa (job #551501) | Cod sursa (job #818962) | Cod sursa (job #2781802) | Cod sursa (job #1169260)
#include <cstdio>
//#include <iostream>
using namespace std;
int a[21][21],n,m;
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 Solvecol(int k){
int i;
if(k == m+1)
;
else
for(i=1;i<=2;i++)
{
if(i==1)
{
if(Calc() > summax)
summax = Calc();
Solvecol(k+1);
}
else
{
Schimbacol(k);
if(Calc() > summax)
summax = Calc();
else Schimbacol(k);
Solvecol(k+1);
}
}
}
void Flip(int k){
int i;
if(k == n+1)
;
else
{
for(i=1;i<=2;i++)
{
if(i == 1)
{
if(Calc() > summax)
summax = Calc();
Solvecol(1);
Flip(k+1);
}
else if(i==2)
{
Schimbalin(k);
if(Calc() > summax)
summax = Calc();
else Schimbalin(k);
Solvecol(1);
Flip(k+1);
}
}
}
}
int main(){
int i,j;
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<=2;j++)
{
if(j==1)
{
Solvecol(1);
if(Calc() > summax) summax=Calc();
}
else
{
Schimbalin(i);
if(Calc() > summax) summax=Calc();
else Schimbalin(i);
}
}
}
// 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;
}