Pagini recente » Cod sursa (job #2178941) | Cod sursa (job #1816219) | Cod sursa (job #1488428) | Cod sursa (job #2105130) | Cod sursa (job #880881)
Cod sursa(job #880881)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
fstream fin("flip.in", ios::in);
fstream fout("flip.out", ios::out);
int n,m,math[20][20], math_clean[20][20];
void switchCol(int col) {
for(int i = 1; i<= m;i++)
math[col][i] *= -1;
}
void checkCol(int col) {
int sum = 0;
for(int i = 1; i<= n;i++)
sum += math[col][i];
if(sum < 0)
switchCol(col);
}
void switchLine(int line) {
for(int i = 1; i<= n;i++)
math[i][line] *= -1;
}
void checkLine(int line) {
int sum = 0;
for(int i = 1; i<= n;i++)
sum += math[i][line];
if(sum < 0)
switchLine(line);
}
int main() {
int max_val = 0, sum = 0;
fin>>n>>m;
for(int i = 1; i<= n; i++)
for(int j = 1; j<= m; j++)
fin>>math_clean[i][j];
// Case One
memcpy (math, math_clean, sizeof (math_clean));
for(int i = 1; i <= n;i++)
checkLine(i);
for(int i = 1; i <= m;i++)
checkCol(i);
sum = 0;
for(int i = 1; i<= n; i++)
for(int j = 1; j<= m; j++)
sum += math[i][j];
max_val = max_val > sum ? max_val : sum;
// Case Two
memcpy (math, math_clean, sizeof (math_clean));
for(int i = 1; i <= m;i++)
checkCol(i);
for(int i = 1; i <= n;i++)
checkLine(i);
sum = 0;
for(int i = 1; i<= n; i++)
for(int j = 1; j<= m; j++)
sum += math[i][j];
max_val = max_val > sum ? max_val : sum;
fout<<max_val;
return 0;
}