Pagini recente » Cod sursa (job #2738800) | Cod sursa (job #714091) | Cod sursa (job #3269042) | Cod sursa (job #3285258) | Cod sursa (job #553959)
Cod sursa(job #553959)
#include <iostream>
#include <fstream>
using namespace std;
long long a[20][20] , suma , sumap , n , m , x[20] , y[20] , cont , ca[20][20];
int valid ()
{
for (int i = 1 ; i <= n ; ++i)
if (x[i] != y[i])
return 1;
return 0;
}
void solution (long long & max)
{
suma = 0;
for (int i = 1 ; i <= n ; ++i)
for (int j = 1 ; j <= m ; ++j)
ca[i][j] = a[i][j];
for (int i = 1 ; i <= n ; ++i)
{
y[i] = x[i];
if (x[i] == 1)
for (int j = 1 ; j <= m ; ++j)
ca[i][j] *= -1;
}
for (int j = 1 ; j <= m ; ++j)
{
sumap = 0;
for (int i = 1 ; i <= n ; ++i)
sumap += ca[i][j];
if (sumap < 0)
sumap *= -1;
suma += sumap;
}
if (suma > max) max = suma;
}
void back (int k , long long & max)
{
for (int i = 1 ; i >= 0 ; --i)
{
x[k] = i;
if (k == n)
{
if (valid())
solution(max);
}
else back(k+1 , max);
}
}
int main ()
{
ifstream f ("flip.in");
ofstream g ("flip.out");
long long max = 0;
f >> n >> m;
for (int i = 1 ; i <= n ; ++i)
for (int j = 1 ; j <= m ; ++j)
f >> a[i][j];
back(1 , max);
g << max;
return 0;
}