Pagini recente » Cod sursa (job #1793163) | Cod sursa (job #1192633) | Cod sursa (job #267889) | Cod sursa (job #1192413) | Cod sursa (job #942627)
Cod sursa(job #942627)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int N, M, a[20][20], b[20][20], v[20], sum;
void copy()
{
for (int i = 1; i <= N; ++i)
for (int j = 1; j <= M; ++j)
b[i][j] = a[i][j];
}
void rezolvare()
{
copy();
int s = 0;
for (int i = 1; i <= N; ++i)
{
int s1 = 0, s2 = 0;
for (int j = 1; j <= M; ++j)
{
if (v[j] == 1)
b[i][j] *= -1;
s1 += b[i][j];
s2 += b[i][j] * -1;
}
if (s1 >= s2)
s += s1;
else
s += s2;
}
if (s >= sum)
sum = s;
}
void back(int k)
{
if (k == M + 1)
{
rezolvare();
return;
}
for (int i = 0; i <= 1; ++i)
{
v[k] = i;
back(k + 1);
v[k] = 0;
}
}
int main()
{
fin >> N >> M;
for (int i = 1; i <= N; ++i)
for (int j = 1; j <= M; ++j)
fin >> a[i][j];
sum = 0;
back(1);
fout << sum;
fin.close();
fout.close();
return 0;
}