Pagini recente » Cod sursa (job #631682) | Cod sursa (job #2951607) | Cod sursa (job #278157) | Cod sursa (job #254431) | Cod sursa (job #2841967)
#include <bits/stdc++.h>
#define NMAX 25
using namespace std;
/*******************************/
// INPUT / OUTPUT
ifstream f("flip.in");
ofstream g("flip.out");
/*******************************/
/// GLOBAL DECLARATIONS
int N, M;
long long ans;
int grid[NMAX][NMAX];
bool flip[NMAX];
/*******************************/
/// FUNCTIONS
void ReadInput();
void Solution();
void Output();
/*******************************/
///-------------------------------------
inline void ReadInput()
{
f >> N >> M;
for (int i = 1 ; i <= N ; ++ i)
{
for (int j = 1 ; j <= M ; ++ j)
{
f >> grid[i][j];
}
}
}
///-------------------------------------
void CheckGrid()
{
long long sum = 0;
for (int j = 1 ; j <= M ; ++ j)
{
long long A = 0, B = 0;
for (int i = 1 ; i <= N ; ++ i)
{
if (flip[i])
{
A -= grid[i][j];
B += grid[i][j];
}
else
{
A += grid[i][j];
B -= grid[i][j];
}
}
sum += max(A, B);
}
ans = max(ans, sum);
}
///-------------------------------------
void Back(int k)
{
if (k == N + 1)
{
CheckGrid();
return;
}
flip[k] = true;
Back(k + 1);
flip[k] = false;
Back(k + 1);
}
///-------------------------------------
inline void Solution()
{
Back(1);
}
///-------------------------------------
inline void Output()
{
g << ans;
}
///-------------------------------------
int main()
{
ReadInput();
Solution();
Output();
return 0;
}