Pagini recente » Cod sursa (job #551741) | Cod sursa (job #1019472) | Cod sursa (job #1191982) | Cod sursa (job #590185) | Cod sursa (job #2346576)
#include <iostream>
#include <fstream>
#include <algorithm>
#define nmax 20
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n, m;
int s[nmax];
int v[nmax][nmax];
void Read();
int flip(int k);
int flip_2(int k);
int main()
{
Read();
fout << max(flip(1), flip_2(1));
return 0;
system("pause");
}
void Read()
{
fin >> n >> m;
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= m; ++j)
{
fin >> v[i][j];
}
}
}
int flip(int k)
{
if (k + 1 == n)
{
int sum = 0;
for (int i = 1; i <= n; ++i)
{
int sum2 = 0;
for (int j = 1; j <= m; ++j)
{
sum2 += v[i][j] * s[j];
}
sum += abs(sum2);
}
return sum;
}
else
{
s[k] = 1;
int val1 = flip(k + 1);
s[k] = -1;
int val2 = flip(k + 1);
return val1 > val2 ? val1 : val2;
}
}
int flip_2(int k)
{
if (k + 1 == m)
{
int sum = 0;
for (int i = 1; i <= m; ++i)
{
int sum2 = 0;
for (int j = 1; j <= n; ++j)
{
sum2 += v[i][j] * s[j];
}
sum += abs(sum2);
}
return sum;
}
else
{
s[k] = 1;
int val1 = flip(k + 1);
s[k] = -1;
int val2 = flip(k + 1);
return val1 > val2 ? val1 : val2;
}
}