Pagini recente » Cod sursa (job #839373) | Cod sursa (job #613676) | Cod sursa (job #2724581) | Cod sursa (job #217234) | Cod sursa (job #595796)
Cod sursa(job #595796)
#include <fstream>
#define nmax 16
using namespace std;
int n,m;
int maxm;
int a[nmax][nmax];
int global[nmax];
int var[2] = {1,-1};
void save();
void back(int nivel); //back pe linii
int max(); //max pe coloane
int main()
{
ifstream in("flip.in");
ofstream out("flip.out");
int i1,i2;
in>>n>>m;
for(i1=0;i1<n;i1++)
for(i2=0;i2<m;i2++)
in>>a[i1][i2];
for(i1=0;i1<n;i1++)
global[i1] = 1;
maxm = max();
back(0);
out<<maxm;
in.close();
out.close();
return 0;
}
void back(int nivel)
{
int i1,maxk;
for(i1=0;i1<2;i1++)
{
global[nivel] = var[i1]; //1,-1
if(nivel == n-1)
{
maxk = max();
if (maxk > maxm)
maxm = maxk;
}
else
back(nivel+1);
}
}
int max()
{
int i1,i2,s_col,maxk=0;
for(i2=0;i2<m;i2++)
{
s_col = 0;
for(i1=0;i1<n;i1++)
s_col += a[i1][i2] * global[i1];
if(s_col < 0)
s_col *= -1;
maxk += s_col;
}
return maxk;
}