Pagini recente » Cod sursa (job #114198) | Cod sursa (job #2624308) | Cod sursa (job #1537787) | Cod sursa (job #682582) | Cod sursa (job #1316343)
#include<fstream>
using namespace std;
int a[20][20],v[20],s2;
void bkt(int i,int s,int n,int m,int &max)
{
int j,k,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-=2*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,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;
}