Pagini recente » Cod sursa (job #659680) | Cod sursa (job #494631) | Cod sursa (job #2403358) | Cod sursa (job #1623864) | Cod sursa (job #112792)
Cod sursa(job #112792)
#include <iostream>
#include <fstream>
using namespace std;
int A[20][20],S[20][20]={0},i,j,n,m,rezultat=-256*1000*1000;
int abs(int a) { return a>-a? a: -a;}
void back(int niv)
{
if (niv==n+1)
{ int acum=0;
for(i=1;i<=m;acum+=abs(S[n][i++]));
if(acum>rezultat) rezultat=acum;
} else
{ for(i=1;i<=n;S[niv][i]=S[niv-1][i]+A[niv][i],i++);
back(niv+1);
for(i=1;i<=n;S[niv][i]=S[niv-1][i]-A[niv][i],i++);
back(niv+1);
}
}
int main()
{ ifstream fin("flip.in");
ofstream fout("flip.out");
fin>>n>>m;for(i=1;i<=n;i++) for(j=1;j<=m;fin>>A[i][j++]);
back(1);
fout<<rezultat;
fin.close();fout.close();
return 0;
}