Pagini recente » Cod sursa (job #569358) | Cod sursa (job #519430) | Cod sursa (job #2585667) | Cod sursa (job #597092) | Cod sursa (job #1830711)
#include <fstream>
#include <climits>
using namespace std;
long long x[17][17],maxe=LONG_MIN;
int v[17];
int m,n;
void flip(int k)
{
for(int i=1;i<=n;i++)
x[k][i]=0-x[k][i];
}
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
int i,j,k=1,ok;
long long s,sum=0;
fin>>m>>n;
for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
fin>>x[i][j];
v[k]=-1;
while(k>0)
{
ok=0;
while(v[k]<1&&!ok)
{
v[k]++;
if(v[k]) flip(k);
ok=1;
}
if(ok)
if(m==k)
{
sum=0;
for(i=1;i<=n;i++)
{
s=0;
for(j=1;j<=m;j++)
s+=x[j][i];
if(s<0) sum=sum-s;
else sum+=s;
}
if(sum>maxe) maxe=sum;
}
else
v[++k]=-1;
else
{
k--;
if(v[k]) flip(k);
}
}
fout<<maxe;
return 0;
}