Pagini recente » Cod sursa (job #2092810) | Cod sursa (job #2644070) | Cod sursa (job #52116) | Cod sursa (job #1360347) | Cod sursa (job #1500349)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
#define INF 1000001
#define MAX(a,b) (a>b?a:b)
int mat[17][17],lp[17],ln[17],cp[17],cn[17];
int main()
{
int n,i,j,k,l,s,bst=-INF,m,ind;
in>>n>>m;
for(i=1; i<=n; i++)
{
lp[i]=0;
ln[i]=0;
for(j=1; j<=m; j++)
{
in>>mat[i][j];
lp[i]+=mat[i][j];
ln[i]-=mat[i][j];
}
}
for(i=0; i<=((1<<n)-1); i++)
{
int act=0;
for(j=0; j<=n-1; j++)
{
if(i&(1<<j))act+=ln[j+1];
else act+=lp[j+1];
}
if(act>bst)
{
bst=act;
ind=i;
}
}
int com=0;
for(j=1; j<=m; j++)
{
int s1=0;
int s2=0;
for(i=1; i<=n; i++)
{
if(ind&(1<<(i-1)))
{
s1=s1-mat[i][j];
s2=s2+mat[i][j];
}
else
{
s1=s1+mat[i][j];
s2=s2-mat[i][j];
}
}
com=com+MAX(s1,s2);
}
out<<com;
return 0;
}