Pagini recente » Cod sursa (job #1689557) | Cod sursa (job #2174280) | Cod sursa (job #956637) | Cod sursa (job #3175169) | Cod sursa (job #2148182)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
const int MAXX = 18;
int n,m,sol;
int tabla[MAXX][MAXX];
int s, inv[MAXX];
void citire()
{
in>>m>>n;
for(int i=1;i<=m; ++i)
for(int j=1;j<=n; ++j)
in>>tabla[i][j];
}
void btk(int p)
{
if(p == m + 1)
{
int s = 0;
for(int j=1;j<=n;++j)
{
int sumc = 0;
for(int i=1;i<=m;++i)
sumc += tabla[i][j] * inv[i];
if(sumc < 0)
s -= sumc;
else
s += sumc;
}
if(s > sol)
sol = s;
return;
}
inv[p] = -1;
btk(p+1);
inv[p] = 1;
btk(p+1);
}
int main()
{
citire();
btk(1);
out<< 1LL * sol;
}