Pagini recente » Cod sursa (job #1725477) | Cod sursa (job #2397246) | Cod sursa (job #1642629) | Cod sursa (job #2319575) | Cod sursa (job #467839)
Cod sursa(job #467839)
#include <cstdio>
#include <cassert>
#define Nmax 18
#define INF -400000000
#define InFile "flip.in"
#define OutFile "flip.out"
using namespace std;
int n, m, mx=INF;
int sol[Nmax];
int M[Nmax][Nmax];
void read();
void back (int);
int suma();
void write();
int main()
{
assert (freopen (InFile, "r", stdin));
assert (freopen (OutFile, "w", stdout));
read();
back (1);
write();
return 0;
}
void read()
{
int i, j;
scanf ("%d %d\n", &n, &m);
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
scanf ("%d ", &M[i][j]);
}
void back (int k)
{
int x;
if (k==m+1)
x=suma(), mx=x>mx?x:mx;
else
{
for (int i=0; i<2; i++)
{
sol[k]=i;
back (k+1);
}
}
}
int suma()
{
int i, j, ax, rez=0;
for (i=1; i<=n; i++)
{
ax=0;
for (j=1; j<=m; j++)
ax+=sol[j]?(-M[i][j]):M[i][j];
if (ax<0) ax=-ax;
rez+=ax;
}
return rez;
}
void write()
{
printf ("%d\n", mx);
}