Pagini recente » Cod sursa (job #2355369) | Cod sursa (job #2130154) | Cod sursa (job #3221526) | Cod sursa (job #2722340) | Cod sursa (job #2434159)
#include <fstream>
int sumLine(int **t, int n, int m, int line) {
int sum = 0;
for (int j = 0; j < m; j++) {
sum += t[line][j];
}
return sum;
}
int sumColumn(int **t, int n, int m, int column) {
int sum = 0;
for (int i = 0; i < n; i++) {
sum += t[i][column];
}
return sum;
}
void flipLine(int **t, int n, int m, int line) {
for (int j = 0; j < m; j++) {
t[line][j] *= -1;
}
}
void flipColumn(int **t, int n, int m, int column) {
for (int i = 0; i < n; i++) {
t[i][column] *= -1;
}
}
int main() {
std::ifstream fin("flip.in");
std::ofstream fout("flip.out");
int **t;
int n, m;
fin >> n;
fin >> m;
t = new int*[n];
for (int i = 0; i < n; i++) {
t[i] = new int[m];
for (int j = 0; j < m; j++) {
fin >> t[i][j];
}
}
bool done = false;
while (!done) {
done = true;
for (int i = 0; i < n; i++) {
if (sumLine(t, n, m, i) < 0) {
done = false;
flipLine(t, n, m, i);
}
}
for (int j = 0; j < m; j++) {
if (sumColumn(t, n, m, j) < 0) {
done = false;
flipColumn(t, n, m, j);
}
}
}
int sum = 0;
for (int i = 0; i < n; i++) {
sum += sumLine(t, n, m, i);
}
fout << sum;
fout.flush();
return 0;
}