Pagini recente » Cod sursa (job #404472) | Cod sursa (job #278655) | Cod sursa (job #849891) | Cod sursa (job #3871) | Cod sursa (job #1994860)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
int a[18][18],n,m;
bool semn[18];
long long maxim=-2000000000;
int sol()
{
long long sum=0,s;
for (int i=1;i<=n;i++)
{
s=0;
for (int j=1;j<=m;j++)
if (semn[j])
s+=a[i][j];
else
s-=a[i][j];
if (s>0)
sum+=s;
else
sum-=s;
}
return sum;
}
void backtracking(int k)
{
if (k>m)
{
int sum=sol();
if (sum>maxim) maxim=sum;
return;
}
semn[k]=0;
backtracking(k+1);
semn[k]=1;
backtracking(k+1);
}
int main()
{
fin >> n >> m;
for (int i=1;i<=n;i++)
for (int j=1;j<=m;j++)
fin >> a[i][j];
backtracking(1);
fout << maxim;
return 0;
}