Pagini recente » Cod sursa (job #1512861) | Cod sursa (job #1920861) | Cod sursa (job #1331288) | Cod sursa (job #2186122) | Cod sursa (job #2346643)
#include <iostream>
#include <fstream>
int sum_max;
int suma_coloana(int nr_linii, int coloana, int matrice[20][20]) {
int sum = 0;
for (int i = 0; i < nr_linii; i++) {
sum += matrice[i][coloana];
}
return sum;
}
int suma_linie(int coloane, int linie, int matrice[20][20]) {
int sum = 0;
for (int i = 0; i < coloane; i++)
sum += matrice[linie][i];
return sum;
}
void comuta_coloana(int linii, int coloana, int(*matrice)[20]) {
for (int i = 0; i < linii; i++)
matrice[i][coloana] *= -1;
}
void comuta_linie(int coloane, int linie, int(*matrice)[20]) {
for (int i = 0; i < coloane; i++)
matrice[linie][i] *= -1;
}
void suma_matrice(int nr_linii, int nr_coloane, int matrice[20][20]) {
int i, j, sum = 0;
for (i = 0; i < nr_coloane; i++) {
if (suma_coloana(nr_linii, i, matrice) < 0) {
comuta_coloana(nr_linii, i, matrice);
for (j = 0; j < nr_linii; j++) {
if (suma_linie(nr_coloane, j, matrice) < 0) {
comuta_linie(nr_coloane, j, matrice);
suma_matrice(nr_linii, nr_coloane, matrice);
}
}
for (i = 0; i < nr_coloane; i++)
sum += suma_coloana(nr_linii, i, matrice);
}
if (sum > sum_max)
sum_max = sum;
}
//for (int t = 0; t < nr_linii; t++) {
// for (int u = 0; u < nr_coloane; u++)
// std::cout << matrice[t][u] << " ";
// std::cout << endl;
//}
}
int main() {
ifstream f("input.in");
ofstream g("output.out");
int n, m, matrice[20][20],i,j,k,l,ok=1;
f >> n >> m;
for (int i = 0; i < n; i++)
for (int j = 0; j < m; j++)
f >> matrice[i][j];
suma_matrice(n, m, matrice);
g << sum_max;
f.close();
g.close();
return 0;
}