Pagini recente » Cod sursa (job #1230672) | Cod sursa (job #2725675) | Cod sursa (job #1724850) | Cod sursa (job #1290818) | Cod sursa (job #2756400)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, a[17][17], v[34], s, maxim;
void verificare() {
int suma;
suma = 0;
for(int i = 1;i <= n;i++) {
for(int j = 1;j <= m;j++) {
if(v[i] == 0) {
if(v[n+j] == 0)
suma += a[i][j];
else
suma -= a[i][j];
}
else {
if(v[n+j] == 0)
suma -= a[i][j];
else
suma += a[i][j];
}
}
}
if(suma > maxim)
maxim = suma;
}
void backtrack(int k) {
for(int i = 0;i <= 1;i++) {
v[k] = i;
if(k < n+m)
backtrack(k+1);
else
verificare();
}
}
int main()
{
fin>>n>>m;
for(int i = 1;i <= n;i++)
for(int j = 1;j <= m;j++)
fin>>a[i][j];
backtrack(1);
fout<<maxim;
return 0;
}