Pagini recente » Cod sursa (job #775371) | Cod sursa (job #2791122) | Cod sursa (job #2561500) | vlad_oji | Cod sursa (job #1316374)
#include<fstream>
using namespace std;
long long a[20][20],v[20],s2;
void bkt(int i,long long s,int n,int m,long long &max)
{
int j,k;
long long c;
if(i<m)
{
v[i]=1;
bkt(i+1,s+a[0][i],n,m,max);
v[i]=-1;
bkt(i+1,s-a[0][i],n,m,max);
}
if(i==m)
{
c=s;
s+=a[0][i];
v[i]=1;
if(s>=max)max=s;
s2=0;
for(j=1;j<=n;j++)
{
s2=0;
for(k=1;k<=m;k++)
s2+=a[j][k]*v[k];
if(s2<0)s+=-2*s2;
}
if(s>=max)max=s;
s=c;
s-=a[0][i];
v[i]=-1;
if(s>=max)max=s;
s2=0;
for(j=1;j<=n;j++)
{
s2=0;
for(k=1;k<=m;k++)
s2+=a[j][k]*v[k];
if(s2<0)s+=-2*s2;
}
if(s>=max)max=s;
}
}
int main()
{
ifstream fcin("flip.in");
ofstream fcout("flip.out");
int n,m,i,j;
long long max=0;
fcin>>n>>m;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
{
fcin>>a[i][j];
a[0][j]+=a[i][j];
}
bkt(1,0,n,m,max);
fcout<<max;
return 0;
}