Pagini recente » Cod sursa (job #110556) | Cod sursa (job #1932273) | Cod sursa (job #1356507) | Cod sursa (job #1993573) | Cod sursa (job #2640753)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int n,m;
int nr=0;
int M[18][18];
long long maxim;
bool usei[18], usej[18];
void bkt(int nrlin)
{
if(nrlin>n)
{
long long s=0;
for(int j=1;j<=m;j++)
{
long long aux=0;
for(int i=1;i<=n;i++)
if(usei[i]==1)
aux-=M[i][j];
else
aux+=M[i][j];
if(aux<-aux)
aux=-aux;
s+=aux;
}
if(nr==1)
maxim=s;
else if(s>maxim)
maxim=s;
}
else
{
usei[nrlin]=1;
bkt(nrlin+1);
usei[nrlin]=0;
bkt(nrlin+1);
}
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
fin>>M[i][j];
bkt(1);
fout<< maxim << '\n';
return 0;
}