Pagini recente » Statistici Dica Florin Sebastian (exclamatie) | Cod sursa (job #2372895) | Cod sursa (job #262305) | Cod sursa (job #1159071) | Cod sursa (job #1870715)
#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 columnsum;
int i, j;
void sumMatrix(std::vector<std::vector<int>> table)
{
long long sum = 0;
for (auto i = 0; i < n; i++)
{
linesum = 0;
for (auto j = 0; j < m; j++)
{
if (combinari[n + j] == 1)
{
linesum = linesum - table[i][j];
}
else
{
linesum = linesum + table[i][j];
}
}
if (combinari[i] == 1)
{
sum -= linesum;
}
else sum += linesum;
}
if (sum > outputsum)
{
outputsum = sum;
}
}
void genComb(int k)
{
for (auto i = 0; i <= 1; i++)
{
combinari[k] = i;
if (k == n + m - 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;
}