Pagini recente » Cod sursa (job #2808930) | Cod sursa (job #1415151) | Cod sursa (job #1245730) | Cod sursa (job #1584486) | Cod sursa (job #1017241)
#include <iostream>
#include <stdio.h>
using namespace std;
int n, m, M[20][20], sScenariu = 0, sMax = 0;
int posibilitate[] = { -1, 1 };
int combinatii[50];
void citireFis() {
scanf("%d %d", &n, &m);
for(int i = 0; i < n; ++i)
for(int j = 0; j < m; ++j)
scanf("%d", &M[i][j]);
}
void calcSumaScenariu() {
sScenariu = 0;
for(int i = 0; i < n; ++i)
for(int j = 0; j < m; ++j)
sScenariu += (M[i][j] * combinatii[i] * combinatii[n + j]);
if (sScenariu > sMax)
sMax = sScenariu;
}
void backTracking(int k) {
if(k == n + m) {
calcSumaScenariu();
} else {
for(int i = 0; i < 2; ++i) {
combinatii[k] = posibilitate[i];
backTracking(k + 1);
}
}
}
int main() {
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
citireFis();
backTracking(0);
printf("%d", sMax);
return 0;
}