Pagini recente » Cod sursa (job #787314) | Cod sursa (job #2833187) | Cod sursa (job #349788) | Cod sursa (job #2511563) | Cod sursa (job #228101)
Cod sursa(job #228101)
#include<stdio.h>
#include <stdlib.h>
#define nmax 18
int v[nmax][nmax],m,n,k=1;
void rez();
void flip(int);
//int abs(int);
int best=0;
int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d%d",&m,&n);
for(int i=1;i<=m;++i)
for(int j=1;j<=n;++j)
{
scanf("%d",&v[i][j]);
v[m+1][j]+=v[i][j];
}
rez();
printf("%d\n",best);
return 0;
}
//int abs(int a)
//{
// if (a>0)
// return a;
// else return -a;
//}
void flip(int linie)
{
for(int i=1;i<=n;++i)
{
v[linie][i] *= -1;
v[m+1][i]+= 2*v[linie][i];
}
}
void rez ()
{
if (k==m)
{
int sol=0;
for(int i=1;i<=n;++i)
sol+=abs(v[m+1][i]);
if (sol > best) best=sol;
return ;
}
k++; rez(); k--;
flip(k);
k++; rez(); k--;
flip(k);
}