Pagini recente » Borderou de evaluare (job #2008145) | Clasamentul arhivei educationale | Borderou de evaluare (job #1719062) | Cod sursa (job #1800492) | Cod sursa (job #2508349)
#include <fstream>
#define NM 20
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
void bkt(int k);
int suma();
void read();
int n, m, a[NM][NM],Smax;
int main()
{
read();
Smax = 0;
bkt(1);
fout << Smax << '\n';
return 0;
}
void read()
{
fin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
fin >> a[i][j];
}
int suma()
{
int x = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
x += a[i][j];
return x;
}
void bkt(int k)
{
if (k == n * m + 1)
{
int S;
S = suma();
if (S > Smax)
Smax = S;
}
else {
int l, c;
l = k / m + 1;
c = k % m;
bkt(k + 1);
a[l][c] = -a[l][c];
bkt(k + 1);
}
}