Pagini recente » Cod sursa (job #171859) | Cod sursa (job #49032) | Istoria paginii runda/pregatire_oni2011_runda2 | Cod sursa (job #121799) | Cod sursa (job #1590150)
#include <fstream>
using namespace std;
const int MAXN = 17;
const int INF = 1 << 30;
ifstream in("flip.in");
ofstream out("flip.out");
int rasp = -INF;
int v[MAXN][MAXN];
int n,m;
int solcol[MAXN];
void citire()
{
in >> n >> m;
for (int i = 1;i <= n;++i)
for (int j = 1;j <= m;++j)
in >> v[i][j];
}
void raspuns()
{
int sum = 0;
for (int i = 1;i <= n;++i)
{
int s = 0;
for (int j = 1;j <= m;++j)
s += v[i][j] * solcol[j];
if (s < 0)
sum -= s;
else sum += s;
}
if (sum > rasp)
rasp = sum;
}
void bkt(int poz)
{
if (poz > m)
{
raspuns();
return;
}
solcol[poz] = 1;
bkt(poz + 1);
solcol[poz] = -1;
bkt(poz + 1);
solcol[poz] = 1;
}
int main()
{
citire();
bkt(1);
out << rasp << '\n';
return 0;
}