Pagini recente » Cod sursa (job #1731816) | Cod sursa (job #3237089)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream cin("flip.in");
ofstream cout("flip.out");
int n,m,v[20][20],sol=INT_MIN;
vector<int>linii;
void solve()
{
for(int linie:linii)
for(int j=1; j<=m; j++)
v[linie][j]*=-1;
int sum_total=0;
for(int j=1; j<=m; j++)
{
int sum_col=0;
for(int i=1; i<=n; i++)
sum_col+=v[i][j];
sum_total+=abs(sum_col);
}
sol=max(sol,sum_total);
for(int linie:linii)
for(int j=1; j<=m; j++)
v[linie][j]*=-1;
}
void backtracking(int val)
{
if(val>n)
{
solve();
return;
}
else
{
linii.push_back(val+1);
backtracking(val+1);
linii.pop_back();
backtracking(val+1);
}
}
int main()
{
cin>>n>>m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
cin>>v[i][j];
backtracking(1);
cout<<sol;
return 0;
}