Pagini recente » Cod sursa (job #95038) | Cod sursa (job #738933) | Cod sursa (job #106058) | Cod sursa (job #1198216) | Cod sursa (job #836966)
Cod sursa(job #836966)
#include <stdio.h>
#include <bitset>
using namespace std;
int n,m,a[17][17],bestSol=-1000000000,v[17];
bitset<17> b;
void doSum()
{
for(int j=0;j<m;j++)
v[j]=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
v[j]+=(b[i]?a[i][j]:(-1)*a[i][j]);
}
int sum=0;
for(int j=0;j<m;j++)
if(v[j]>0) sum+=v[j];
else sum+=(-1)*v[j];
if(sum>bestSol)
bestSol=sum;
} void back(int nivel)
{
if(nivel==n)
doSum();
else
{
back(nivel+1);
b[nivel]=1;
back(nivel+1);
}
} int main()
{
freopen("flip.in","r",stdin);
freopen("flip.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
scanf("%d",&a[i][j]);
back(0);
printf("%d",bestSol);
return 0;
}