Pagini recente » Cod sursa (job #2259000) | Cod sursa (job #1785911) | Cod sursa (job #1654609) | Cod sursa (job #1000275) | Cod sursa (job #2352888)
#include <fstream>
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[20][20], cmat[20][20], k, smax;
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 (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
cmat[i][j] = mat[i][j];
}
}
for (j = 0; j < m; j++) {
if (cbCurent[j]=='1') {
for (i = 0; i < n; i++) {
cmat[i][j] *= -1;
}
}
}
int s = 0;
for (i = 0; i < n; i++) {
int sLinie = 0;
for (j = 0; j < m; j++)
{
sLinie+=cmat[i][j];
}
s += abs(sLinie);
}
smax = max(smax, s);
}
cout << smax;
cin.close();
cout.close();
return 0;
}