Pagini recente » Cod sursa (job #1223547) | Cod sursa (job #2479536) | Cod sursa (job #2452029) | Cod sursa (job #1792317) | Cod sursa (job #2445300)
#include <iostream>
#include <fstream>
using namespace std;
int v[100][100];
int N, M;
ifstream input("flip.in");
ofstream output("flip.out");
void togl_col(int M, int total){
for(int i = 0; i < total; ++i)
v[i][M] = v[i][M] * (-1);
}
void togl_row(int N, int total){
for(int i = 0; i < total; ++i)
v[N][i] = v[N][i] * (-1);
}
void citire(int N, int M){
for(int i = 0; i < N; ++i)
for(int x = 0; x < M; ++x)
input >> v[i][x];
}
int suma(int N, int M){
int sum = 0;
for(int i = 0; i < N; ++i)
for(int x = 0; x < M; ++x)
sum += v[i][x];
return sum;
}
void afisare(int N, int M){
for(int i = 0; i < N; ++i){
for(int x = 0; x < M; ++x){
output << v[i][x] << " ";
}
output << endl;
}
output << suma(N, M);
}
void rezolva_Randuri(int N, int M){
for(int i = 0; i < N ; ++i){
int neg = 0, poz = 0;
for(int x = 0; x < M; ++x){
if(v[i][x] >= 0)
poz += v[i][x];
else
neg += v[i][x];
}
if( (-1) * neg > poz)
togl_row(i, M);
}
}
void rezolva_Coloane(int N, int M){
for(int i = 0; i < M; ++i){
int neg = 0, poz = 0;
for(int x = 0; x < N; ++x){
if(v[x][i] >= 0)
poz += v[x][i];
else
neg += v[x][i];
}
if((-1) * neg > poz)
togl_col(i, N);
}
}
int main()
{
input >> N >> M;
citire(N, M);
rezolva_Randuri(N, M);
rezolva_Coloane(N, M);
rezolva_Randuri(N, M);
rezolva_Coloane(N, M);
rezolva_Randuri(N, M);
rezolva_Coloane(N, M);
rezolva_Randuri(N, M);
rezolva_Coloane(N, M);
rezolva_Randuri(N, M);
rezolva_Coloane(N, M);
rezolva_Randuri(N, M);
rezolva_Coloane(N, M);
output << suma(N, M);
return 0;
}