Pagini recente » Cod sursa (job #3185512) | C.C. | Cod sursa (job #569116) | Cod sursa (job #2405045) | Cod sursa (job #2577351)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
long maxi;
int n, m;
void back(int ant_l, long a[17][17],long s){
for (int linie = ant_l + 1; linie < n; linie ++)
{
back(linie, a,s);
for (int j = 0; j < m; j ++)
{
a[linie][j] = -a[linie][j];
s += 2*a[linie][j];
}
for (int j = 0; j < m; j ++)
{
long d = 0;
for (int i = 0; i < n; i ++)
d += a[i][j];
if (d < 0)
for (int i = 0; i < n; i ++)
{
a[i][j]= -a[i][j];
s += 2*a[i][j];
}
}
maxi = max(s,maxi);
back(linie,a,s);
}
}
int main()
{
in >> n >> m;
long a[17][17];
long s;
for (int i = 0; i < n; i ++)
for (int j = 0; j < m; j ++){
in >> a[i][j];
maxi += a[i][j];
}
cout << maxi << endl;
back(-1,a,maxi);
out << maxi;
in.close();
out.close();
return 0;
}