Pagini recente » Cod sursa (job #1472853) | Cod sursa (job #1047139) | Cod sursa (job #2677837) | Cod sursa (job #1471941) | Cod sursa (job #1871425)
#include <fstream>
#include <vector>
std::ifstream fin("flip.in");
std::ofstream fout("flip.out");
std::vector<std::vector<int>> table;
std::vector<int> line;
#define MAX 17
int combinari[MAX] = {};
long long outputsum;
int n, m;
int linesum;
int linesumNegative;
int columnsum;
int i, j;
void sumMatrix(std::vector<std::vector<int>> table)
{
long long sum = 0;
for (auto i = 0; i < m; i++)
{
columnsum = 0;
linesumNegative = 0;
for (auto j = 0; j < n; j++)
{
if (combinari[j] == 1)
{
columnsum -= table[j][i];
}
else columnsum += table[j][i];
}
if (columnsum < 0)
{
sum -= columnsum;
}
else sum += columnsum;
}
if (sum>outputsum)
{
outputsum = sum;
}
}
void genComb(int k)
{
for (auto i = 0; i <= 1; i++)
{
combinari[k] = i;
if (k == n - 1)
{
sumMatrix(table);
}
else
{
genComb(k + 1);
}
}
}
int main(void)
{
long long sum = 0;
fin >> n >> m;
for (auto i = 0; i < n; i++)
{
line.clear();
for (auto j = 0; j < m; j++)
{
int x;
fin >> x;
line.push_back(x);
sum += x;
}
table.push_back(line);
}
outputsum = sum;
genComb(0);
fout << outputsum;
}