Pagini recente » Cod sursa (job #2975899) | Cod sursa (job #1927604) | Cod sursa (job #693069) | Cod sursa (job #2245131) | Cod sursa (job #2342435)
#include <bits/stdc++.h>
#define N 19
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m;
int a[N][N],b[N][N];
long long s,smax;///suma pe matrice
bool l[N],c[N];///0-necomutat 1-comutat
void read()
{int i,j;
fin>>n>>m;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
{fin>>a[i][j];b[i][j]=a[i][j];}
}
void transformal(int k)
{int i;
for(i=1;i<=m;++i)b[k][i]=-b[k][i];
}
void verifsuma()
{int i,j;
long long suma=0;
for(i=1;i<=n;++i)
for(j=1;j<=m;++j)
if((l[i]+c[j])%2==0)suma+=a[i][j];
else suma+=-a[i][j];
if(suma>smax)smax=suma;
}
void backc(int k)
{int i;
for(i=0;i<=1;++i)
{c[k]=i;
if(k<m)backc(k+1);
else verifsuma();
}
}
void backl(int k)
{int i;
for(i=0;i<=1;++i)
{l[k]=i;
//if(i==1)transformal(k);
if(k<n)backl(k+1);
else backc(1);
}
}
int main()
{ int i,j;
read();
backl(1);
fout<<smax;
return 0;
}