Pagini recente » Cod sursa (job #1181468) | Cod sursa (job #1559868) | Cod sursa (job #1010489) | Profil CretoiuPatricia | Cod sursa (job #20177)
Cod sursa(job #20177)
#include <fstream.h>
int n,m,mat[50][50];
void citire (int &n,int &m,int mat[50][50])
{
std::ifstream f ("flip.in");
f>>n>>m;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
f>>mat[i][j];
f.close();
}
int suma (int n,int m,int mat[50][50])
{
int s=0;
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
s+=mat[i][j];
return s;
}
int sL (int n,int mat[50][50],int k)
{
int s=0;
for (int i=0;i<m;i++)
s+=k*mat[n][i];
return s;
}
int sC (int n,int mat[50][50],int k)
{
int s=0;
for (int i=0;i<n;i++)
s+=k*mat[i][n];
return s;
}
void intoarce (int n,int m,int mat[50][50],int i,int j)
{
for (int k=0;k<m;k++)
mat[i][k]*=-1;
for (k=0;k<n;k++)
mat[k][j]*=-1;
}
void flip (int n,int m,int mat[50][50])
{
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if (sC(j,mat,1)+sL(i,mat,1)<sC(j,mat,-1)+sL(i,mat,-1))
intoarce(n,m,mat,i,j);
}
int main ()
{
citire(n,m,mat);
flip(n,m,mat);
std::ofstream g ("flip.out");
g<<suma(n,m,mat);
g.close();
return 0;
}