Pagini recente » Cod sursa (job #3142276) | Cod sursa (job #2857130) | Cod sursa (job #2688757) | Cod sursa (job #3189270) | Cod sursa (job #1130965)
#include <iostream>
#include <fstream>
using namespace std;
int m, n,suma=0;
void startback(int**,int*,int);
void back(int **a, int *p, int nivel)
{
if (nivel == m-1 )
{
int sumalinie=0;
int sumatotala = 0;
for (int i = 0; i < n; i++)
{
sumalinie = 0;
for (int j = 0; j < m; j++)
{
sumalinie += a[i][j]*p[j];
}
sumalinie > sumalinie*(-1) ? sumatotala += sumalinie : sumatotala += sumalinie*(-1);
}
if (sumatotala > suma) suma = sumatotala;
}
else
startback(a, p,nivel+1);
}
void startback(int **a, int *p, int nivel)
{
for (int i = -1; i<=1; i += 2)
{
p[nivel] = i;
back(a, p, nivel );
}
}
int main()
{
ifstream in("flip.in");
ofstream out("flip.out");
int i, j;
in >> n; in >> m;
int **a;
int *p;
a = new int*[n];
for (i = 0; i<n; i++)
a[i] = new int[m];
for (i = 0; i<n; i++)
for (j = 0; j<m; j++)
in >> a[i][j];
p = new int[m];
startback(a, p, 0);
out << suma;
delete[] p;
for (i = 0; i < m; i++)
delete[] a[i];
in.close();
out.close();
}