Pagini recente » Cod sursa (job #1508814) | Cod sursa (job #2324969) | Cod sursa (job #408624) | Cod sursa (job #581350) | Cod sursa (job #2196153)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int v[17][17];
int n, m;
void read() {
fin >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++) {
fin >> v[i][j];
v[i][0] += v[i][j];
//v[0][j] += v[i][j];
v[0][0] += v[i][j];
}
}
void flipLine(int line) {
for (int i = 1; i <= n; i++) {
v[line][i] *= -1;
v[0][i] += 2 * v[line][i];
}
v[line][0] *= -1;
v[0][0] += 2 * v[line][0];
}
void flipColumn(int column) {
for (int i = 1; i <= m; i++) {
v[i][column] *= -1;
v[i][0] += 2 * v[i][column];
}
v[0][column] *= -1;
v[0][0] += 2 * v[0][column];
}
int maxim;
void sumMax(){
int s=0;
for(int i=1; i<=n; i++){
int sl=0;
for(int j=1; j<=m; j++)
sl+=v[i][j]*v[0][j];
s+=abs(sl);
}
if(s>maxim) maxim=s;
}
void getSumMax(int k){
if(k==m+1) sumMax();
else for(int i=-1; i<=1; i+=2){
v[0][k]=i;
getSumMax(k+1);
}
}
int main()
{
read();
getSumMax(1);
fout<<maxim;
}