Pagini recente » Cod sursa (job #2188191) | Cod sursa (job #1751457) | Cod sursa (job #82554) | Cod sursa (job #2896441) | Cod sursa (job #1495007)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n, m, mat[20][20], cop[20][20], sum_max=-(1<<30);
void bt(int lin)
{
if(lin==n+1)
{
int sum=0;
for(int i=1; i<=n; ++i)
for(int j=1; j<=m; ++j)
sum+=mat[i][j];
for(int j=1; j<=m; ++j)
{
int cur=0;
for(int i=1; i<=n; ++i)
cur+=mat[i][j];
if(cur<0) sum-=2*cur;
}
if(sum_max<sum) sum_max=sum;
return;
}
bt(lin+1);
for(int i=1; i<=m; ++i)
mat[lin][i]*=-1;
bt(lin+1);
for(int i=1; i<=m; ++i)
mat[lin][i]*=-1;
}
int main()
{
cin>>n>>m;
for(int i=1; i<=n; ++i)
for(int j=1; j<=m; ++j)
{
cin>>mat[i][j];
cop[i][j]=mat[i][j];
}
bt(1);
cout<<sum_max;
return 0;
}