Pagini recente » Cod sursa (job #1193499) | Cod sursa (job #2538334) | Cod sursa (job #1915457) | Cod sursa (job #2126298) | Cod sursa (job #1590121)
#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], sollin[MAXN];
void bkt(int poz, int v[], int lim, void (*raspuns)())
{
if (poz > lim)
{
raspuns();
return;
}
v[poz] = -1;
bkt(poz + 1, v, lim, raspuns);
v[poz] = 1;
bkt(poz + 1, v, lim, raspuns);
}
void raspuns_2()
{
int sum = 0;
for (int i = 1;i <= n;++i)
for (int j = 1;j <= m;++j)
sum += v[i][j] * sollin[i] * solcol[j];
if (sum > rasp)
rasp = sum;
}
void raspuns_1()
{
bkt(1,solcol,m,raspuns_2);
}
void citire()
{
in >> n >> m;
for (int i = 1;i <= n;++i)
for (int j = 1;j <= m;++j)
in >> v[i][j];
}
int main()
{
citire();
bkt(1,sollin,n,raspuns_1);
out << rasp << '\n';
return 0;
}