Pagini recente » Cod sursa (job #887274) | Cod sursa (job #1360457) | Borderou de evaluare (job #624871) | Cod sursa (job #803394) | Cod sursa (job #1932200)
#include <fstream>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n,m,a[16][16];
void flipl(int k)
{
for(int i = 1 ; i <= m ; i++)
a[k][i]*=-1;
}
void flipc(int k)
{
for (int i = 1 ; i <= n ; i++)
a[i][k]*=-1;
}
int pc(int k)
{
int s = 0;
for(int l = 0 ; l <= n ; l++ )
s=s+(a[l][k]*(-1));
return s;
}
int pl(int k)
{
int s = 0;
for(int l = 0 ; l <= m ; l++ )
s=s+(a[k][l]*(-1));
return s;
}
int sumaflipcol(int sc)
{
for(int j = 1; j <= m; j++)
{
int s = 0;
for (int i = 1 ; i <= n ; i++)
s+=a[i][j];
int k = pc(j);
if(s<k) {flipc(j); sc+=k;}
else sc+=s;
}
return sc;
}
int sumafliplin(int sl)
{
for (int i = 1 ; i <= n ; i++)
{
int s = 0;
for (int j = 1 ; j <= m ; j++)
s+=a[i][j];
int k = pl(i);
if(s<k) {flipl(i); sl+=k;}
else sl+=s;
}
return sl;
}
int main()
{
cin>>n>>m;
for(int i = 1 ; i <= n ; i++)
for(int j = 1 ; j <= m ; j++) cin>>a[i][j];
int sc = 0; int sl = 0;
sc = sumaflipcol(sc);
sl = sumafliplin(sl);
if(sl<sc)cout<<sc;
else cout<<sl;
return 0;
}