Pagini recente » Cod sursa (job #418067) | Cod sursa (job #291776) | Cod sursa (job #3314903) | Cod sursa (job #460820) | Cod sursa (job #3323544)
#include <bits/stdc++.h>
using namespace std;
int mat[25][25];
int mat1[25][25];
int main()
{
ifstream cin ("flip.in");
ofstream cout ("flip.out");
int n, m;
cin >> n >> m;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
cin >> mat[i][j], mat1[i][j]=mat[i][j];
}
int max1=0;
for(int mask=0; mask<(1<<n); mask++)
{
for(int i=1; i<=n; i++)
{
int val=1;
if(mask&(1<<(i-1)))
val=-1;
for(int j=1; j<=m; j++)
mat[i][j]=mat1[i][j]*val;
}
for(int j=1; j<=m; j++)
{
int s1=0, s2=0;
for(int i=1; i<=n; i++)
{
if(mat[i][j]>0)
s1+=mat[i][j];
else
s2+=abs(mat[i][j]);
}
if(s1<s2)
{
for(int i=1; i<=n; i++)
mat[i][j]*=(-1);
}
}
int sum=0;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=m; j++)
sum+=mat[i][j];
}
max1=max(max1, sum);
}
cout << max1;
return 0;
}