Pagini recente » Cod sursa (job #1411155) | pre106 | Cod sursa (job #108861) | Cod sursa (job #197586) | Cod sursa (job #505391)
Cod sursa(job #505391)
# include <stdlib.h>
# include <cstdio>
using namespace std;
int sol[100], m, n, a[100][100], s[100], sum, ct, max;
void back(int k)
{int i, j;
if (k == m + 1)
{
for (i = 1; i <= m; i++)
for (j = 1; j <= n; j++)
if (sol[i]) a[i][j] = - a[i][j];
sum = 0;
for (i = 1; i <= n; i++)
{
s[i] = 0;
for (j = 1; j <= m; j++)
s[i] += a[j][i];
if (s[i] < 0) s[i] = -s[i];
sum += s[i];
if (max < sum) max = sum;
}
for (i = 1; i <= m; i++)
for (j = 1; j <= n; j++)
if (sol[i]) a[i][j] = - a[i][j];
}
else
{
sol[k] = -1;
while (sol[k] < 1)
{
sol[k]++;
back(k + 1);
}
}
}
int main()
{int i, j;
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&m,&n);
for (i = 1; i <= m; i++)
for (j = 1; j <= n; j++)
scanf("%d",&a[i][j]);
max = -1000000000;
back(1);
printf("%d",max);
return 0;
}