Pagini recente » Cod sursa (job #2347037) | Cod sursa (job #2775927) | Cod sursa (job #856150) | Cod sursa (job #1688986) | Cod sursa (job #2649407)
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
void citire(int a[20][20], int &n, int &m)
{
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fin>>a[i][j];
}
void afisare(int a[20][20],int n ,int m)
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
cout<<setw(3)<<a[i][j]<<" ";
cout<<endl;
}
}
int min_col(int a[20][20], int n, int m)
{
int v[17]={};
for(int i=1;i<=n;i++)
{
int s=0;
for(int j=1;j<=m;j++)
s=s+a[j][i];
v[i]=s;
}
int mini=v[1],x;
for (int i=1;i<=m;i++)
if(v[i]<mini)
{
x=i; //coloana cu cea mai mica suma
mini=v[i];
}
return x;
}
int min_lin(int a[20][20], int n, int m)
{
int v[17]={};
for(int i=1;i<=n;i++)
{
int s=0;
for(int j=1;j<=m;j++)
s=s+a[i][j];
v[i]=s;
}
int mini=v[1],x;
for (int i=1;i<=n;i++)
if(v[i]<mini)
{
x=i; //linia cu cea mai mica suma
mini=v[i];
}
return x;
}
void comutator(int a[20][20],int n, int m)
{
int lin,col,i,j;
lin=min_lin(a,n,m);
col=min_col(a,n,m);
for(i=1;i<=m;i++)
a[lin][i]=a[lin][i]*(-1);
for(i=1;i<=n;i++)
a[i][col]=a[i][col]*(-1);
}
int suma (int a[20][20],int n,int m)
{
int s=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s=s+a[i][j];
return s;
}
int main()
{
int a[20][20],n,m,x;
citire(a,n,m);
afisare(a,n,m);
cout<<endl<<endl;
comutator(a,n,m);
fout<<suma(a,n,m);
return 0;
}