Pagini recente » Cod sursa (job #642333) | Cod sursa (job #1095464) | Borderou de evaluare (job #2602425) | Cod sursa (job #2094130) | Cod sursa (job #300733)
Cod sursa(job #300733)
#include<fstream>
using namespace std;
long long a[17][17], maxs=LLONG_MIN;
int n,m,sol[35];
void read()
{
ifstream in ("flip.in");
in>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in>>a[i][j];
}
void calculate()
{
long long q=0, s;
for(int i=1;i<=m;i++)
{ s=0;
for(int j=1;j<=n;j++)
s+=a[j][i]*sol[j];
if(s<0)s*=-1;
q+=s;
}
if(maxs<q) maxs=q;
}
void backtracking(int a)
{
if(a==n+1) calculate();
else
{
sol[a]=1;
backtracking(a+1);
sol[a]=-1;
backtracking(a+1);
}
}
int main()
{
read();
backtracking(1);
ofstream out ("flip.out");
out<<maxs;
return 0;
}