Pagini recente » Cod sursa (job #782745) | Cod sursa (job #3120514) | Cod sursa (job #1248131) | Istoria paginii runda/cerculdeinfo-lectia17-teoriajocurilo | Cod sursa (job #1879278)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
#define MAX 17
int combinari[MAX] = {};
int matrix[MAX][MAX] = {};
unsigned int line, column;
long long answer;
void checkIfSolution()
{
long long sum = 0;
for (unsigned int i = 0; i < line; i++)
{
long long partialSum = 0;
for (unsigned int j = 0; j < column; j++)
{
(combinari[j]) ? partialSum += matrix[i][j] : partialSum -= matrix[i][j];
}
sum += max(partialSum, -partialSum);
}
if (sum > answer)
{
answer = sum;
}
}
void genComb(int k)
{
for (auto i = 0; i <= 1; i++)
{
combinari[k] = i;
if (k == (line - 1))
{
checkIfSolution();
}
else
{
genComb(k + 1);
}
}
}
int main(void)
{
fin >> line >> column;
for (unsigned int i = 0; i < line; i++)
{
for (unsigned int j = 0; j < column; j++)
{
fin >> matrix[i][j];
}
}
genComb(0);
fout << answer;
return 0;
}