Pagini recente » Cod sursa (job #2370966) | Cod sursa (job #264543) | Cod sursa (job #2968079) | Cod sursa (job #388623) | Cod sursa (job #2195979)
#include <fstream>
using namespace std;
int a[20][20],m,n,smax;
int v[20];
void backtrack (int k)
{
if (k > n)
{
///suma
int s,suma=0;
for (int j = 1; j<=m; j++)
{
s=0;
for (int i=1; i<=n; i++)
s += a[i][j] * v[i];
if (s < 0)
s*=-1;///daca pe acea coloana mai bine pun -1 pt
///o suma mai buna
suma +=s;
}
if (suma > smax)
smax = suma;
}
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;
}