Pagini recente » Cod sursa (job #1262435) | Cod sursa (job #2440029) | Rating Moisin Andrei (andreimoisin) | Cod sursa (job #2187902) | Cod sursa (job #1823450)
#include <iostream>
#include <fstream>
#include <bitset>
#include <string>
using namespace std;
ifstream inFile("flip.in");
ofstream out("flip.out");
int sum_schimb(int **a, int n, int m, string l, string c)
{
int i, j, sum = 0;
int** x = new int*[n];
for (i = 0; i < n; ++i)
x[i] = new int[m];
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
x[i][j] = a[i][j];
}
}
for (i = 0; i < n; ++i)
{
if (l[15-i] != '0')
{
for (j = 0; j < m; ++j)
{
x[i][j] *= -1;
}
}
}
for (i = 0; i < m; ++i)
{
if (c[15 - i] != '0')
{
for (j = 0; j < n; ++j)
{
x[j][i] *= -1;
}
}
}
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
sum += x[i][j];
}
}
return sum;
}
int main()
{
int n, m, i, j, max = 0, sum;
inFile >> n >> m;
int** a = new int*[n];
for (i = 0; i < n; ++i)
a[i] = new int[m];
for (i = 0; i < n; ++i)
{
for (j = 0; j < m; ++j)
{
inFile >> a[i][j];
}
}
string s;
for (i = 0; i < pow(2,n)-1; ++i)
{
for (j = 0; j < pow(2,m)-1; ++j)
{
sum = sum_schimb(a, n, m, bitset< 16 >(i).to_string(), bitset< 16 >(j).to_string());
if (sum > max) max = sum;
}
}
out << max;
return 0;
}