Pagini recente » Cod sursa (job #965275) | Cod sursa (job #1577411) | Cod sursa (job #1221927) | Cod sursa (job #1977877) | Cod sursa (job #2352916)
#include <fstream>
#include <climits>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
string detectareCB(int nr, int biti) {
string r = "";
for (int i = 1; i <= biti; i++) {
int b=nr%2;
nr /= 2;
r = (char)(b + '0') + r;
}
return r;
}
int n, m, i, j, mat[25][20], k;
long long smax = INT32_MIN, s;
string cbCurent;
int main() {
cin >> n >> m;
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
cin >> mat[i][j];
}
}
for (k = 0; k <= (1 << n) - 1; k++)
{
cbCurent = detectareCB(k, n);
//flip pe coloane (pe fiecare coloana care are 1 in dreptul ei inmultesc cu -1)
for (j = 0; j < m; j++)
{
mat[20][j] = (cbCurent[j] == '0' ? 1 : -1);
}
s = 0;
for (i = 0; i < n; i++)
{
int sLinie = 0;
for (j = 0; j < m; j++)
{
sLinie += mat[i][j] * mat[20][j];
}
s += abs(sLinie);
}
smax = max(smax, s);
}
cout << smax;
cin.close();
cout.close();
return 0;
}