Pagini recente » Cod sursa (job #1551789) | Cod sursa (job #916664) | Cod sursa (job #447968) | Cod sursa (job #2055759) | Cod sursa (job #1417066)
#include <stdio.h>
int a[16][16];
bool flip[16];
int n, m;
int max;
void back(int x)
{
int i, j, s;
int total = 0;
if(x == m)
{
for(i = 0; i < n; i++)
{
s = 0;
for(j = 0; j < m; j++)
s += flip[j] ? -a[i][j] : a[i][j];
if(s < 0)
s = -s;
total += s;
}
if(total > max)
max = total;
}
else
{
back(x + 1);
flip[x] = true;
back(x + 1);
flip[x] = false;
}
}
int main(void)
{
int i, j;
freopen("flip.in", "r", stdin);
freopen("flip.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
scanf("%d", &a[i][j]);
back(0);
printf("%d", max);
return 0;
}