Pagini recente » Cod sursa (job #1458299) | Cod sursa (job #1224723) | Cod sursa (job #1237194) | Cod sursa (job #847673) | Cod sursa (job #2381812)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
int n, m, a[16][16], s, stemp;
int suma_linii[16];
void back(int it)
{
if (it == m)
{
stemp = 0;
for (int i = 0; i < n; i++)
if (suma_linii[i] > 0)
stemp += suma_linii[i];
else
stemp += -suma_linii[i];
s = s > stemp ? s : stemp; //facem suma modulelor sumelor de pe fiecare linie si retinem rezultatul cel mai mare
return;
}
back(it + 1);
for (int i = 0; i < n; i++)
suma_linii[i] -= 2 * a[i][it]; //comutarea coloanei it
back(it + 1);
for (int i = 0; i < n; i++)
suma_linii[i] += 2 * a[i][it]; //comutarea inapoi a coloanei it
}
int main()
{
int i, j;
FILE *fin, *fout;
fin = fopen("flip.in", "r");
fout = fopen("flip.out", "w");
fscanf(fin, "%d %d", &n, &m);
for (i = 0; i < n; i++)
for (j = 0; j < m; j++)
{
fscanf(fin, "%d", &a[i][j]);
suma_linii[i] += a[i][j]; //memoram suma de pe fiecare linie
}
back(0);
fprintf(fout, "%d", s);
fclose(fin);
fclose(fout);
return 0;
}