Pagini recente » Cod sursa (job #326356) | Cod sursa (job #1596602) | Cod sursa (job #2578022) | Cod sursa (job #215636) | Cod sursa (job #26047)
Cod sursa(job #26047)
#include <stdio.h>
int a[17][17],s[17];
int i,j,maxim,n,m;
inline int max(int a,int b) { if (a>b) return a; else return b;}
inline int abs(int x) { if (x<0) return -1*x; else return x;}
void verifica()
{
int t,i,j,sn,sp,s_t=0;
//Calculeaza in V sumele partiale
for (j=1;j<=m;++j)
{
sn=0;sp=sn;
for (i=1;i<=n;++i)
{
t=s[i]*a[i][j];
if (t<0) sn+=-1*t; else sp+=t;
}
s_t+=abs(sn-sp);
}
if (maxim<s_t) maxim=s_t;
}
void back(int x)
{
if (x<n)
{
s[x]=-1;
back(x+1);
s[x]=1;
back(x+1);
}
else
{
s[x]=-1;
verifica();
s[x]=1;
verifica();
}
}
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for (i=1;i<=n;++i)
for (j=1;j<=m;++j) scanf("%d",&a[i][j]);
back(1);
printf("%d\n",maxim);
return 0;
}