Pagini recente » Cod sursa (job #2957757) | Cod sursa (job #3134607) | Cod sursa (job #696181) | Cod sursa (job #3209462) | Cod sursa (job #112793)
Cod sursa(job #112793)
#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<=m;S[niv][i]=S[niv-1][i]+A[niv][i],i++);
back(niv+1);
for(i=1;i<=m;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;
}