Pagini recente » Cod sursa (job #3209150) | Cod sursa (job #174588) | Borderou de evaluare (job #1569090) | Cod sursa (job #2722696) | Cod sursa (job #760957)
Cod sursa(job #760957)
#include<fstream>
#include<iostream>
using namespace std;
int n,m, mat[16][16];
long int spl(int l)
{
int i;
long int s=0;
for(i=0;i<m;i++)
s+=mat[l][i];
return s;
}
long int snl(int l)
{
int i;
long int s=0;
for(i=0;i<m;i++)
s+=(mat[l][i])*(-1);
return s;
}
void invl(int l)
{
int i;
for(i=0;i<m;i++)
mat[l][i]=(mat[l][i])*(-1);
}
long int spc(int c)
{
int i;
long int s=0;
for(i=0;i<n;i++)
s+=mat[i][c];
return s;
}
long int snc(int c)
{
int i;
long int s=0;
for(i=0;i<n;i++)
s+=(mat[i][c])*(-1);
return s;
}
void invc(int c)
{
int i;
for(i=0;i<n;i++)
mat[i][c]=(mat[i][c])*(-1);
}
int main()
{
int i,j,k;
long int s=0;
ifstream in("flip.in");
ofstream out("flip.out");
in>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
in>>mat[i][j];
in.close();
for(k=0;k<n*m;k++)
{
for(i=0;i<n;i++)
if(spl(i)<snl(i))
invl(i);
for(i=0;i<m;i++)
if(spc(i)<snc(i))
invc(i);
}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
s+=mat[i][j];
out<<s<<'\n';
out.close();
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
cout<<mat[i][j]<<' ';
cout<<'\n';
}
}