Pagini recente » Cod sursa (job #1653801) | Cod sursa (job #546709) | Cod sursa (job #579167) | Cod sursa (job #1400142) | Cod sursa (job #276602)
Cod sursa(job #276602)
#include <stdio.h>
#define FIN "flip.in"
#define FOUT "flip.out"
#define MAXN 17
int change[MAXN * 2], a[MAXN][MAXN], n, m, S;
void back(int k) {
int s = 0, i, j;
if (k == n + m) {
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
s += change[i] * change[n + j] * a[i][j];
if (s > S) {
S = s;
}
} else {
change[k] = 1; back (k+1);
change[k] = -1; back (k+1);
}
}
int main () {
int i, j;
FILE *fin = fopen(FIN, "rt");
FILE *fout = fopen(FOUT, "wt");
fscanf(fin, "%d %d", &n, &m);
for (i = 0; i < n; i++) for (j = 0; j < m; j++) fscanf(fin, "%d", &a[i][j]);
for (i = 0; i < n + m; i++) change[i] = -1;
back(0);
fprintf(fout, "%d\n", S);
fclose(fin);
fclose(fout);
return 0;
}