Pagini recente » Cod sursa (job #3263445) | Cod sursa (job #352128) | Cod sursa (job #137047) | Cod sursa (job #942676) | Cod sursa (job #2703359)
#include <fstream>
#include <cmath>
using namespace std;
const short NMAX = 16;
int mat[NMAX + 5][NMAX + 5];
int n, m, ans;
ifstream fin("flip.in");
ofstream fout("flip.out");
int solve()
{
int i,j,temp,s = 0;
for(i = 1; i <= n; i++)
{
temp = 0;
for(j = 1; j <= m; j++)
temp = temp + mat[i][j];
temp = (int)abs(temp);
s = s + temp;
}
return s;
}
void backt(int step)
{
int i;
if(step == m + 1)
{
ans = max(ans, solve());
return;
}
backt(step + 1);
for(i = 1; i <= n; i++)
mat[i][step] = mat[i][step] * (-1);
backt(step + 1);
for(i = 1; i <= n; i++)
mat[i][step] = mat[i][step] * (-1);
}
int main()
{
ios_base::sync_with_stdio(false);
fin.tie(NULL);
int i,j;
fin >> n >> m;
for(i = 1; i <= n; i++)
for(j = 1; j <= m; j++)
fin >> mat[i][j];
backt(1);
fout << ans;
return 0;
}