Pagini recente » Cod sursa (job #2015155) | Cod sursa (job #650282) | Borderou de evaluare (job #2935991) | Monitorul de evaluare | Cod sursa (job #2461955)
#include <fstream>
#include <stdlib.h>
#include <iostream>
//DATE:
std::ifstream f("flip.in");
std::ofstream g("flip.out");
int mat[17][17];
int n, m;
//FUNCTII:
void citireMatrice();
void sumeLinie(int& ln, int& sp, int& sn);
void sumeCol(int& col, int& sp, int& sn);
int sumaMat();
//void scrieMatrice();
int main() {
citireMatrice();
// schimbam val. linii:
for (int i = 1; i <= n; i++) {
int sumaPoz = 0;
int sumaNeg = 0;
sumeLinie(i, sumaPoz, sumaNeg);
if(sumaNeg > sumaPoz)
for (int j = 1; j <= m; j++)
mat[i][j] = -(mat[i][j]);
}
// schimbam val. coloane:
for (int j = 1; j <= m; j++) {
int sumaPoz = 0;
int sumaNeg = 0;
sumeCol(j, sumaPoz, sumaNeg);
if(sumaNeg > sumaPoz)
for (int i = 1; i <= n; i++)
mat[i][j] = -(mat[i][j]);
}
g << sumaMat();
}
void citireMatrice() {
f >> n >> m;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
f >> mat[i][j];
}
void sumeLinie(int& ln, int& sp, int& sn) {
for (int i = 1; i <= m; i++) {
if (mat[ln][i] > 0)
sp += mat[ln][i];
else
sn += abs(mat[ln][i]);
}
}
void sumeCol(int& col, int& sp, int& sn) {
for (int i = 1; i <= n; i++) {
if (mat[i][col] > 0)
sp += mat[i][col];
else
sn += abs(mat[i][col]);
}
}
int sumaMat() {
int suma = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
suma += mat[i][j];
return suma;
}
/*void scrieMatrice() {
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++)
std::cout << mat[i][j] << " ";
std::cout << std::endl;
}
std::cin.get();
}
*/