Pagini recente » Cod sursa (job #2667263) | Cod sursa (job #448428) | Cod sursa (job #1862263) | Cod sursa (job #2154799) | Cod sursa (job #1190249)
#include <fstream>
using namespace std;
void Citire (int a[16][16],int &n,int &m)
{
ifstream fin("Flip.in");
fin>>n>>m;
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
fin>>a[i][j];
fin.close();
}
void Suma_initiala_linii (int a[16][16],int n,int m)//se calculeaza suma initiala de pe fiecare linie a matricii
{
for (int i=0; i<n; i++)
{
int s=0;
for (int j=0; j<m; j++)
{
s+=a[i][j];
a[i][-1]=s;//bordare
}
}
}
void Suma_initiala_coloane (int a[16][16],int n,int m)//se calculeaza suma initiala de pe fiecare coloana a matricii
{
for (int j=0;j<m;j++)
{
int s=0;
for (int i=0;i<n;i++)
{
s+=a[i][j];
a[-1][j]=s;
}
}
}
void Comutare (int a[16][16],int n,int m)//se comuta convenabil elementele matricii
{
int i,j,k;
for (i=0; i<n; i++)
{
if (a[i][-1]<0)
{
//a[i][0]*=-1;
for (j=0; j<m; j++)
a[i][j]*=-1;
}
for (j=0; j<m; j++)
if (a[-1][j]<0)
{
//a[0][j]*=-1;
for (k=0; k<n; k++)
a[i][j]*=-1;
}
}
}//DE CE AFECTA DACA FACEAM a[0][j]*=-1?
int Suma_finala (int a[16][16],int n,int m)
{
int i,j,s=0;
for (i=0; i<n; i++)
for (j=0; j<m; j++)
s+=a[i][j];
return s;
}
void Afisare (int a[16][16],int n,int m)
{
int i,j;
ofstream fout("Flip.out");
fout<<Suma_finala(a,n,m);
fout.close ();
}
int main ()
{
int a[16][16],n,m;
Citire(a,n,m);
Suma_initiala_linii(a,n,m);
Suma_initiala_coloane (a,n,m);
Comutare(a,n,m);
Suma_finala(a,n,m);
Afisare(a,n,m);
return 0;
}