Pagini recente » Cod sursa (job #2849807) | Cod sursa (job #1568348) | Cod sursa (job #895850) | Cod sursa (job #3265743) | Cod sursa (job #1152273)
#include<fstream>
using namespace std;
int sumLin(int a[16][16], int idLin, int nrCol)
{
//functia calculeaza suma de pe linie
int s=0;
for(int i=0; i<nrCol; i++)
s+=a[idLin][i];
return s;
}
int sumMat(int a[16][16], int nrLin, int nrCol)
{
//s retine suma de pe fiecare linie
int s=0;
for(int i=0; i<nrLin; i++)
s+=sumLin(a, i, nrCol);
return s;
}
int sumCol(int a[16][16], int idCol, int nrLin)
{
//functia calculeaza suma de pe coloana
int s=0;
for(int i=0; i<nrLin; i++)
s+=a[i][idCol];
return s;
}
void comuta(int a[16][16], char mod, int id, int nr)
{
switch(mod)
{
case 'l': for(int i=0;i<nr;i++) a[id][i]=-a[id][i]; break;
case 'c': for(int i=0;i<nr;i++) a[i][id]=-a[i][id]; break;
default: break;
}
}
int main()
{
int a[16][16],n,m;
ifstream f("flip.in");
ofstream g("flip.out");
//citesc numarul de linii si coloane
f>>n>>m;
//citesc matricea din fisier
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
f>>a[i][j];
//parcurg matricea pe linii
for(int k=-1;k<=1;k+=2)
{
for(int i=0;i<n;i++)
if(sumLin(a,i,m)<0)
comuta(a,'l',i,m);
for(int i=0;i<m;i++)
if(sumCol(a,i,n)<0)
comuta(a,'c',i,n);
}
g<<sumMat(a,n,m);
f.close();
g.close();
return 0;
}