Pagini recente » Monitorul de evaluare | Cod sursa (job #796324) | Cod sursa (job #3353364) | Cod sursa (job #3353374) | Cod sursa (job #2247240)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("flip.in");
ofstream g ("flip.out");
int suma_matrice(int a[20][20],int n,int m,int z, int y)
{
int suma=0;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
{
if(z==i)
{
suma+=(a[i][j]*(-1));
}
else if(y==j)
{
suma+=(a[i][j]*(-1));
}
else
suma+=(a[i][j]);
}
return suma;
}
void linii (int a[20][20],int n,int m)
{
int sumapoz,sumaneg;
for(int i=0; i<n; i++)
{
sumapoz=0;
sumaneg=0;
for(int j=0; j<m; j++)
{
if(a[i][j]>0)
sumapoz+=a[i][j];
else
sumaneg+=a[i][j];
}
if(suma_matrice(a,n,m,i,-1)>suma_matrice(a,n,m,-1,-1))
{
for(int x=0; x<m; x++)
a[i][x]*=-1;
}
}
}
void coloane(int a[20][20], int n, int m)
{
int sumapoz,sumaneg;
for(int i=0; i<n; i++)
{
sumapoz=0;
sumaneg=0;
for(int j=0; j<m; j++)
{
if(a[j][i]>0)
sumapoz+=a[j][i];
else
sumaneg+=a[j][i];
}
if(suma_matrice(a,n,m,-1,i)>suma_matrice(a,n,m,-1,-1))
{
for(int x=0; x<n; x++)
a[x][i]*=-1;
}
}
}
int main()
{
int a[20][20],m,n;
f>>n>>m;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
f>>a[i][j];
linii(a,n,m);
coloane(a,n,m);
for(int i=0;i<n;i++)
{
cout<<"\n";
for(int j=0;j<m;j++)
cout<<a[i][j]<<" ";
}
g<<suma_matrice(a,n,m,-1,-1);
return 0;
}