Pagini recente » Cod sursa (job #790547) | Cod sursa (job #2275599) | Cod sursa (job #1665672) | Cod sursa (job #2414053) | Cod sursa (job #1126561)
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
#define N 17
int a[N][N], n, m, sol=-999999999, v[2*N+1], b[N][N];
void citire();
void backtrack(int k);
int main()
{
citire();
backtrack(1);
out << sol;
in.close();
out.close();
return 0;
}
void citire()
{
in >> n >> m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
in >> a[i][j];
}
void backtrack(int k)
{
if(k-1==n+m)
{
int f=0, s=0;
for(int i=1;i<=n;i++)
{
f++;
for(int j=1;j<=m;j++)
b[i][j]=a[i][j]*v[f];
}
for(int i=1;i<=m;i++)
{
f++;
for(int j=1;j<=n;j++)
b[j][i]=b[j][i]*v[f];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
s+=b[i][j];
if(s>sol)
sol=s;
return;
}
for(int i=-1;i<=1;i+=2)
{
v[k]=i;
backtrack(k+1);
}
}