Pagini recente » Borderou de evaluare (job #2964912) | Cod sursa (job #1701660)
#include<iostream>
#include<fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int A[20][20], M[20][20];
int n, m, sol;
int const oo = 1000000000;
void Read()
{
int i, j;
f>>n>>m;
for(i=0; i<n; i++)
for(j=0; j<m; j++)
f>>A[i][j];
}
void Back()
{
int i, j, k, tot, sum, sign;
sol = -oo;
for(i=0; i < (1<<n); i++){
for(j=0; j<n; j++){
sign = 1;
if(i & (1<<j))
sign = -1;
for(k=0; k<m; k++)
M[j][k] = sign * A[j][k];
}
tot = 0;
for(j=0; j<m; j++){
sum = 0;
for(k=0; k<n; k++)
sum += M[k][j];
if(sum < 0)
sum = -sum;
tot += sum;
}
sol = max(sol, tot);
}
g<<sol<<"\n";
}
int main()
{
Read();
Back();
return 0;
}