Pagini recente » Cod sursa (job #2359266) | Cod sursa (job #2222393) | Cod sursa (job #3196607) | Cod sursa (job #280343) | Cod sursa (job #101589)
Cod sursa(job #101589)
#include <fstream>
using namespace std;
int abs(int a){ return a>0 ? a:-a;}
int A[16][16],sum[16];
int MAX,m,n,i,j;
void back(int niv)
{ int i;
if(niv==n)
{ int suma=0;
for(i=0;i<m;suma+=abs(sum[i++]));
if(suma>MAX) MAX=suma;
} else
{
//pune cu plus valoarea de pe linia A[niv][i]
for(i=0;i<m;sum[i]+=A[niv][i++]);back(niv+1);
for(i=0;i<m;sum[i]-=2*A[niv][i++]);back(niv+1);
for(i=0;i<m;sum[i]+=A[niv][i++]);
}
}
int main()
{
ifstream fin("flip.in");
ofstream fout("flip.out");
fin>>n>>m;
for(i=0;i<n;i++) for(j=0;j<m;j++) fin>>A[i][j];
MAX=-256*1000*1000;
for(i=0;i<m;sum[i++]=0);
back(0);
fout<<MAX;
fin.close();
fout.close();
return 0;
}