Pagini recente » Istoria paginii runda/335900 | Cod sursa (job #2690590) | Cod sursa (job #1623613) | Cod sursa (job #317525) | Cod sursa (job #1852140)
#include<stdio.h>
#define BIT(k) (1<<(k))
#define max(a,b) (a>b?a:b)
int n1, nc;
int mat[20][20];
int scol[20], sc, smax = -1000000000;
int main()
{
int i, j, c;
freopen("flip.in" , "r", stdin );
freopen("flip.out", "w", stdout);
scanf("%d%d", &n1, &nc);
for(i = 0; i < n1; i++)
{
for(j = 0; j < nc; j++)
{
scanf("%d", &mat[i][j]);
}
}
for (c = 0; c < BIT(n1); c++)
{
sc = 0;
for(j = 0; j < nc; j++)
{
scol[j] = 0;
for(i = 0; i < n1; i++)
{
if((c & BIT(i)) != 0)
{
sc -= mat[i][j];
scol[j] -= mat[i][j];
}
else
{
sc += mat[i][j];
scol[j] += mat[i][j];
}
}
}
for(j = 0; j < nc; j++)
{
if(scol[j] < 0)
sc -= 2 * scol[j];
}
smax = max(smax, sc);
}
printf("%d", smax);
return 0;
}