Pagini recente » Cod sursa (job #3219480) | Cod sursa (job #1112977) | Cod sursa (job #701842) | Cod sursa (job #2517168) | Cod sursa (job #1017231)
#include <iostream>
#include <stdio.h>
using namespace std;
int n, m, M[20][20], sScenariu = 0, sMax = 0;
int posibilitate[] = { -1, 1 };
int lineP[50], colP[50];
void afisareM() {
for(int i = 0; i < n; ++i) {
for(int j = 0; j < m; ++j)
printf("%d ", M[i][j]);
printf("\n");
}
}
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]);
//afisareM();
}
void calcSumaScenariu() {
sScenariu = 0;
for(int i = 0; i < n; ++i)
for(int j = 0; j < m; ++j)
sScenariu += (M[i][j] * lineP[i] * colP[j]);
if (sScenariu > sMax)
sMax = sScenariu;
//printf("%d\n", sScenariu);
}
void backC(int k) {
if(k == m) {
/*printf("column: \n\t");
for (int i = 0; i < k; i++)
printf("%d ", colP[i]);
printf("\n");*/
calcSumaScenariu();
} else {
for(int i = 0; i < 2; ++i) {
colP[k] = posibilitate[i];
backC(k + 1);
}
}
}
void backL(int k) {
if(k == n) {
//printf("line: \n\t");
/*for (int i = 0; i < k; i++)
printf("%d ", lineP[i]);
printf("\n");*/
backC(0);
} else {
for(int i = 0; i < 2; ++i) {
lineP[k] = posibilitate[i];
backL(k + 1);
}
}
}
int main() {
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
citireFis();
backL(0);
printf("%d", sMax);
return 0;
}