#include <iostream>
#include <fstream>
using namespace std;
double sum_collumn(double a[16][16], int m, int j, int r){
double suma = 0;
for (int i = 0; i < m; i++)
suma = suma + a[j][i]*r;
return suma;
};
double sum_row(double a[16][16], int n, int j, int r){
double suma = 0;
for (int i = 0; i < n; i++)
suma = suma + a[i][j]*r;
return suma;
};
int main(){
int n, m;
double a[16][16];
ifstream ifile("flip.in");
ofstream ofile("flip.out");
ifile >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
ifile >> a[i][j];
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
int gata = 1;
while (gata){
gata = 0;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++){
if ((sum_collumn(a, m, i, -1) + 2 * a[i][j] > sum_collumn(a, m, i, 1) + 2 * a[i][j]) && ((sum_row(a, n, j, -1) + 2 * a[i][j]) >(sum_row(a, n, j, 1) + 2 * a[i][j]))){
for (int x = 0; x < m; x++) a[i][x] *= -1;
for (int y = 0; y < n; y++) a[y][j] *= -1;
cout << endl << "||" << i << " " << j << "||" << sum_collumn(a, m, i, -1) - 2 * a[i][j] << " " << sum_collumn(a, m, i, 1) - 2 * a[i][j] << endl;
gata = 1;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
}
else if (sum_collumn(a, m, i, -1) > sum_collumn(a, m, i, 1) && sum_row(a, n, j, -1) > sum_row(a, n, j, 1)){
if (sum_collumn(a, m, i, -1) - sum_collumn(a, m, i, 1) > sum_row(a, n, j, -1) - sum_row(a, n, j, 1)){
for (int y = 0; y < n; y++) a[y][j] *= -1;
gata = 1;
cout << endl << "|+|" << i << " " << j << "|+|" << endl;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
}
else {
for (int x = 0; x < m; x++) a[i][x] *= -1;
gata = 1;
cout << endl << "|1|" << i << " " << j << "|1|" << endl;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
}
}
else if (sum_collumn(a, m, i, -1) > sum_collumn(a, m, i, 1) && sum_row(a, n, j, -1) < sum_row(a, n, j, 1)){
for (int x = 0; x < m; x++) a[i][x] *= -1;
cout << endl << "|2|" << i << " " << j << "|2|" << endl;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
}
else if (sum_collumn(a, m, i, -1) < sum_collumn(a, m, i, 1) && sum_row(a, n, j, -1) > sum_row(a, n, j, 1)){
for (int y = 0; y < n; y++) a[y][j] *= -1;
cout << endl << "|3|" << i << " " << j << "|3|" << endl;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
}
}
}
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
ofile << a[i][j] << " ";
ofile << endl;
}
ofile << endl;
double suma = 0;
for (int i = 0; i < n; i++){
for (int j = 0; j < m; j++)
suma += a[i][j];
}
ofile << suma;
cout.flush();
//cout << n << endl << m << endl;
//outf << atoi(a) + atoi(b);
//cout.flush();
//intr.close();
//outf.close();
//cout << endl;
system("pause");
}