Pagini recente » Cod sursa (job #1571539) | Cod sursa (job #2169383) | Cod sursa (job #1245385) | Cod sursa (job #374420) | Cod sursa (job #2007813)
#include <iostream>
#include <fstream>
using namespace std;
int n,m,a[18][18];
bool semn[18];
long long smaxi=-(3e10);
ifstream in("flip.in");
ofstream out("flip.out");
long long int sol()
{
long long int smaxi=0,sum=0;
for(int i=1;i<=n;i++)
{
sum=0;
for(int j=1;j<=m;j++)
if(semn[j])
sum=a[i][j]+sum;
else
sum=sum-a[i][j];
if(sum<0)
smaxi=smaxi-sum;
else
smaxi=smaxi+sum;
}
return smaxi;
}
void backtracking(int k)
{
if(k==m+1)
{
int sum=sol();
if(sum>smaxi)
smaxi=sum;
return;
}
semn[k]=false;
backtracking(k+1);
semn[k]=true;
backtracking(k+1);
}
int main()
{
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in>>a[i][j];
backtracking(1);
out<<smaxi;
}