Pagini recente » Cod sursa (job #2975142) | Cod sursa (job #475835) | Cod sursa (job #99681) | Cod sursa (job #1417341) | Cod sursa (job #3193278)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
#define int long long
const int minS=-256e9;
int mat[20][20],n,m,maxs=minS-5;
bool col[20],lin[20];
void verificare()
{
int s=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if((col[j]==1 && lin[i]==0) || (col[j]==0 && lin[i]==1))
s+=(-1 *mat[i][j]);
else
s+=mat[i][j];
}
}
maxs=max(maxs,s);
}
void swapcol(int poz)
{
if(poz==m+1)
{
verificare();
return ;
}
col[poz]=1-col[poz];
swapcol(poz+1);
col[poz]=1-col[poz];
swapcol(poz+1);
}
void swapline(int poz)
{
if(poz==n+1)
{
swapcol(1);
return ;
}
lin[poz]=1-lin[poz];
swapline(poz+1);
lin[poz]=1-lin[poz];
swapline(poz+1);
}
signed main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>mat[i][j];
swapline(1);
cout<<maxs;
return 0;
}