Pagini recente » Cod sursa (job #1313145) | Cod sursa (job #150648) | Cod sursa (job #3162236) | Cod sursa (job #1656567) | Cod sursa (job #2148425)
#include <cstdio>
#include <algorithm>
#include <cstdlib>
using namespace std;
const int NMAX = 25;
int a[NMAX][NMAX];
int st[NMAX]; /// vector de flipuri
int n , m;
int mx = 0;
int res = 0;
void backtracking(int k)
{
if(k == n+1)
{
mx = 0;
for(int i = 1 ; i <= m ; i++)
{
int sum = 0;
for(int j = 1 ; j <= n ; j++)
sum += a[i][j] * st[j];
mx += abs(sum);
}
res = max(res,mx);
return;
}
st[k] = 1;
backtracking(k+1); ///aici fac flip-urile
st[k] = -1;
backtracking(k+1);
}
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",&a[i][j]);
backtracking(1);
printf("%d",res);
return 0;
}