Pagini recente » Cod sursa (job #838874) | Cod sursa (job #130181) | Cod sursa (job #2202942) | Cod sursa (job #93890) | Cod sursa (job #1287871)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
long long l[20],c[20],a[17][17],n,m,smax;
void verif()
{
long long s=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s=s+a[i][j]*l[i]*c[j];
if(s>smax) smax=s;
}
void back(int pl,int pc)
{
verif();
for(int i=pl+1;i<=n;i++)
if(l[i]==1)
{
l[i]=-1;
back(i,pc);
l[i]=1;
}
for(int i=pc+1;i<=m;i++)
if(c[i]==1)
{
c[i]=-1;
back(pl,i);
c[i]=1;
}
}
void sume()
{
for(int i=1;i<=n;i++)
{
l[i]=1;
for(int j=1;j<=m;j++)
a[i][0]+=a[i][j];
}
for(int i=1;i<=m;i++)
{
c[i]=1;
for(int j=1;j<=n;j++)
a[0][i]+=a[j][i];
}
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fin>>a[i][j];
sume();
back(0,0);
fout<<smax<<'\n';
return 0;
}