Pagini recente » Cod sursa (job #3128690) | Cod sursa (job #929700) | Istoria paginii runda/cnrv_x1/clasament | Cod sursa (job #2485934) | Cod sursa (job #2764935)
#include <fstream>
#include <cmath>
#include <iostream>
/*Functionare:verific suma nr. negative de pe coloane respectiv linii, iar daca este mai mare decat
* cea a numerelor pozitive inmultesc coloana/linia cu -1.
* La final, se afla suma totala.
*/
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int main()
{
int N,M,mat[16][16],sumaNeg,sumaPoz,sumaFinala=0;
in>>N>>M;
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
in>>mat[i][j];
}
//verificare pe coloane
for(int x=0;x<N;x++)
{
sumaNeg=0;
sumaPoz=0;
for(int y=0;y<M;y++)
{
if(mat[x][y]<0)
sumaNeg+=mat[x][y];
else sumaPoz+=mat[x][y];
}
if(abs(sumaNeg)>sumaPoz)
{
for(int y=0;y<M;y++)
{
mat[x][y]*=-1;
}
}
}
//verificare pe linii
for(int y=0;y<N;y++)
{
sumaNeg=0;
sumaPoz=0;
for(int x=0;x<M;x++)
{
if(mat[x][y]<0)
sumaNeg+=mat[x][y];
else sumaPoz+=mat[x][y];
}
if(abs(sumaNeg)>sumaPoz)
{
for(int x=0;x<M;x++)
{
mat[x][y]*=-1;
}
}
}
//suma finala
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
sumaFinala+=mat[i][j];
}
out<<sumaFinala;
return 0;
}