Pagini recente » Cod sursa (job #1393170) | Cod sursa (job #1710916) | Cod sursa (job #178117) | Cod sursa (job #2969525) | Cod sursa (job #1503159)
#include <stdio.h>
FILE* f;
FILE* g;
int n, m, s;
int a[16][16];
bool flip[2][16];
void check()
{
int r = 0;
for (int i = 0; i < n; ++i)
{
for (int j = 0; j < m; ++j)
{
if (flip[0][j] != flip[1][i])
{
r += -a[i][j];
}
else
{
r += a[i][j];
}
}
}
if (r > s)
s = r;
}
void solve(int i, int j)
{
if (i == 1 && j == n)
{
check();
return ;
}
flip[i][j] = 0;
if (j == m && i == 0)
solve(1, 0);
else
solve(i, j + 1);
flip[i][j] = 1;
if (j == m && i == 0)
solve(1, 0);
else
solve(i, j + 1);
}
int main()
{
f = fopen("flip.in", "r");
g = fopen("flip.out", "w");
fscanf(f, "%d %d", &n, &m);
for (int i = 0; i < n; ++i)
for (int j = 0; j < m; ++j)
fscanf(f, "%d", &a[i][j]);
solve(0, 0);
fprintf(g, "%d\n", s);
return (0);
}