Pagini recente » Cod sursa (job #780926) | Cod sursa (job #579510) | Cod sursa (job #1651016) | Cod sursa (job #255282) | Cod sursa (job #2195977)
#include <fstream>
using namespace std;
int a[20][20],m,n,smax;
int v[20];
int c[20];
void btk (int k)
{
if (k > m)
{
int suma = 0;
for (int i=1; i<=n; i++)
for (int j=1; j<=m; j++)
suma += a[i][j] * v[i] * c[j];
if (suma > smax)
smax=suma;
}
else
{
c[k] = 1;
btk (k + 1);
c[k] = -1;
btk (k+1);
}
}
void backtrack (int k)
{
if (k > n)
{
///suma
btk(1);
}
else
{
v[k] = 1;
backtrack (k+1);
v[k] = -1;
backtrack (k+1);
}
}
int main()
{
ifstream f("flip.in");
ofstream g("flip.out");
int i,j;
f >> n >> m;
for (i=1; i<=n; i++)
for (j=1; j<=m; j++)
f>>a[i][j];
backtrack (1);
g << smax;
return 0;
}