Pagini recente » Cod sursa (job #2246954) | Cod sursa (job #1391433) | Cod sursa (job #1845715) | Cod sursa (job #1863750) | Cod sursa (job #2206657)
#include<iostream>
#include<fstream>
using namespace std;
int n, m, a[100][100], st[200], max;
void citire()
{
ifstream f("flip.in");
f >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
f >> a[i][j];
f.close();
}
int suma(int a[100][100], int n, int m)
{
int s = 0;
for (int o = 1; o <= n; o++)
for (int O = 1; O <= m; O++)
s += a[o][O];
return s;
}
void bktr(int k)
{
int b[100][100], s;
for (int i = -1; i <= 1; i = i + 2)
{
st[k] = i;
if (k == n + m)
{
for (int p = 1; p <= n; p++)
for (int q = 1; q <= m; q++)
b[p][q] = a[p][q];
for (int p = 1; p <= k; p++)
if (st[p] == -1)
if (p <= n)
for (int j = 1; j <= m; j++)
b[p][j] = b[p][j] * (-1);
else
for (int j = 1; j <= n; j++)
b[j][p - n] = b[j][p - n] * (-1);
s = suma(b, n, m);
if (s > max)
max = s;
}
else
bktr(k + 1);
}
}
void scriere()
{
ofstream g("flip.out");
g << max;
g.close();
}
int main()
{
citire();
max = suma(a, n, m);
bktr(1);
scriere();
}