Pagini recente » Cod sursa (job #1934802) | Cod sursa (job #1276523) | Cod sursa (job #3138208) | Istoria paginii runda/easyoji/clasament | Cod sursa (job #2342491)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m, Max_i;
long long Max_sum, sum, sp;
int A[17][17];
int B[17][17];
bool lin[17];
void read()
{
fin >> n >> m;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
fin >> A[i][j];
}
}
}
void next()
{
if(lin[1] == false)
{
lin[1] = true;
}
else
{
int k = 1;
while(lin[k] == true)
{
lin[k] = false;
k++;
}
lin[k] = true;
}
}
int twoPow(int p)
{
int rez = 1;
while(p)
{
rez *= 2;
p--;
}
return rez;
}
void createB()
{
int sign;
for(int i = 1; i <= n; i++)
{
if(lin[i] == false) sign = 1;
else sign = -1;
for(int j = 1; j <= m; j++)
{
B[i][j] = A[i][j] * sign;
}
}
}
int main()
{
read();
Max_i = twoPow(n);
for(int i = 0; i < Max_i; i++)
{
createB();
sum = 0;
for(int j = 1; j <= m; j++)
{
sp = 0;
for(int i = 1; i <= n; i++)
{
sp += B[i][j];
}
sum += abs(sp);
}
if(sum > Max_sum) Max_sum = sum;
next();
}
fout << Max_sum;
return 0;
}