Pagini recente » Cod sursa (job #1988129) | Cod sursa (job #1039662) | Cod sursa (job #3249089) | Cod sursa (job #1515590) | Cod sursa (job #1494990)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n, m, mat[20][20], cop[20][20], s, s_cop, s_max;
void bt()
{
for(unsigned i=0; i<(1<<(m+n)); ++i)
{
int nr_bit=1;
for(unsigned mask=1; mask<=i; mask<<=1, ++nr_bit)
if(i&mask)
if(nr_bit<=n)
for(int j=1; j<=m; ++j)
{
s=s-2*mat[nr_bit][j];
mat[nr_bit][j]*=-1;
}
else
for(int j=1; j<=n; ++j)
{
s=s-2*mat[j][nr_bit-n];
mat[j][nr_bit-n]*=-1;
}
if(s_max<s) s_max=s;
for(int j=1; j<=n; ++j)
for(int k=1; k<=m; ++k)
mat[j][k]=cop[j][k];
s=s_cop;
}
}
int main()
{
cin>>n>>m;
for(int i=1; i<=n; ++i)
for(int j=1; j<=m; ++j)
{
cin>>mat[i][j];
s+=mat[i][j];
cop[i][j]=mat[i][j];
}
s_cop=s;
bt();
cout<<s_max;
return 0;
}