Pagini recente » Cod sursa (job #2326574) | Cod sursa (job #2720959) | Cod sursa (job #107606) | Cod sursa (job #3248637) | Cod sursa (job #3161281)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n, m, a[17][17], v[35],maxi=-10000000;
int x[35];
void suma(int o[][17],int x,int y)
{
long long sum=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
sum+=o[i][j];
if(maxi<sum)
maxi=sum;
}
void prelucare()
{
for (int i = 1; i <= m + n; i++)
{
if (v[i] == 0)
x[i] = -1;
else
x[i] = 1;
}
// for (int i = 1; i <= m + n; i++)
// cout<<x[i]<<" ";
int cmat[17][17];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
cmat[i][j] = a[i][j];
}
int cnt = 0;
for (int i = 1; i <= n; i++)
{
cnt++;
for (int j = 1; j <= m; j++)
cmat[i][j] = x[cnt] * cmat[i][j];
}
for (int j = 1; j <= m; j++)
{
cnt++;
for (int i = 1; i <= n; i++)
cmat[i][j] = cmat[i][j] * x[cnt];
}
// for (int i = 1; i <= n; i++,cout<<'\n')
// for (int j = 1; j <= m; j++)
// {
// cout<<cmat[i][j]<<" ";
// }
// cout<<'\n';
suma(cmat,n,m);
}
void back(int k)
{
for (int i = 0; i <= 1; i++)
{
v[k] = i;
if (k == n + m)
prelucare();
else
back(k + 1);
}
}
int main()
{
cin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> a[i][j];
back(1);
cout<<maxi;
}