Pagini recente » Cod sursa (job #1521560) | Cod sursa (job #2892616) | Cod sursa (job #2385633) | Cod sursa (job #166607) | Cod sursa (job #2513936)
#include <iostream>
#include <fstream>
using namespace std;
int Max, sw[20];
void sum(int n, int m, int v[20][20]) {
int s1 = 0;
for (int i = 0; i < n; i++) {
int s2 = 0;
for (int j = 0; j < m; j++)
s2 += sw[j] * v[i][j];
if (s2 < 0)
s1 -= s2;
else
s1 += s2;
}
if (s1 > Max)
Max = s1;
}
void backtracking(int k, int n, int m, int v[20][20]) {
if (k > m)
sum(n, m, v);
else
for(int i = -1; i <= 1; i++)
if (i) {
sw[k] = i;
backtracking(k + 1, n, m, v);
}
}
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, v[20][20];
fin >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
fin >> v[i][j];
backtracking(1, n, m, v);
fout << Max;
fin.close(), fout.close();
return 0;
}