Pagini recente » Cod sursa (job #2365474) | Istoria paginii runda/canta-cucu | emag_2016-incepatori-2 | Cod sursa (job #1163821) | Cod sursa (job #439205)
Cod sursa(job #439205)
#include <cstdio>
using namespace std;
#define oo 0x3f3f3f3
#define hg 8192
int flip[17][17];
int M, N, poz;
int MAX = -oo;
char ch[hg];
inline void cit (int &x)
{
int semn = 1;
x = 0;
if (ch[0]=='\0') fread (ch, 1, hg, stdin);
else while ((ch[poz] < '0' || ch[poz] > '9') && (ch[poz]!='-'))
if (++poz == hg)
fread (ch, 1, hg, stdin), poz = 0;
if (ch[poz] == '-')
{
semn = -1;
if (++poz == hg)
fread (ch, 1, hg, stdin), poz = 0;
}
while (ch[poz] >= '0' && ch[poz] <= '9')
{
x = x * 10 + ch[poz] - '0';
if (++poz == hg)
fread (ch, 1, hg, stdin), poz = 0;
}
x *= semn;
}
inline void LN(const int l)
{
for (int i = 0; i < M; i++)
flip[l][i] = -flip[l][i];
}
void read()
{
cit(N), cit(M);
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
cit(flip[i][j]);
}
void solve()
{
int suma = 0, sumi = 0;
for (int i = 0; i < M; i++, sumi = 0)
{
for (int j = 0; j < N; j++)
sumi += flip[j][i];
suma += sumi > 0 ? sumi : -sumi;
}
if (suma > MAX)
MAX = suma;
}
void back(const int l)
{
if (l == N) solve() ;
else
for (int i = 1; i <= 2; i++)
back(l + 1), LN(l);
}
void write()
{
printf("%d",MAX);
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
read(), back(0), write();
return 0;
}