Pagini recente » Cod sursa (job #2101893) | Cod sursa (job #2199375) | Cod sursa (job #1648179) | Cod sursa (job #255438) | Cod sursa (job #2514820)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
short n, m, a[17][17], ca[17][17], v[33], k;
long long s, smax;
void comuta()
{
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
ca[i][j]=a[i][j];
for(int l=0;l<k;l++)
if(l<n && v[l])
for(int j=0;j<m;j++)
ca[l][j]=-ca[l][j];
else if(l>=n && l<k && v[l])
for(int i=0;i<n;i++)
ca[i][l-n]=-ca[i][l-n];
}
long long suma()
{
s=0;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
s+=ca[i][j];
return s;
}
void dec2bin(int x)
{
int ck=k-1;
for(int i=0;i<k;i++)
v[i]=0;
while(x>0)
{
v[ck]=x%2;
x/=2;
ck--;
}
}
int main()
{
fin>>n>>m;
k=n+m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
fin>>a[i][j];
ca[i][j]=a[i][j];
}
for(long long i=0;i<pow(2,k);i+=2)
{
dec2bin(i);
comuta();
if(suma()>smax)
smax=suma();
}
fout<<smax;
return 0;
}