Pagini recente » Cod sursa (job #213743) | Cod sursa (job #965639) | Cod sursa (job #423645) | Cod sursa (job #3357031) | Cod sursa (job #3340396)
#include <fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");
const int Nmax = 20;
int n, m;
long long sol;
int mat[Nmax][Nmax];
int masca;
void citire(){
fin >> n >> m;
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++){
fin >> mat[i][j];
}
}
}
void flip(){
for(int bit = 0; bit < n; bit++){
if(masca & (1 << bit)){
int i = bit + 1;
for(int j = 1; j <= m; j++){
mat[i][j] *= (-1);
}
}
}
}
void verificare_suma(){
long long sum, suma_coloana;
flip();
sum = 0;
for(int j = 1; j <= m; j++){
suma_coloana = 0;
for(int i = 1; i <= n; i++){
suma_coloana += mat[i][j];
}
if(suma_coloana < 0){
sum -= suma_coloana;
}
else{
sum += suma_coloana;
}
}
sol = max(sol, sum);
flip();
}
void rezolvare(){
for(masca = 0; masca < (1 << n); masca++){
verificare_suma();
}
}
void afisare(){
fout << sol;
}
int main(){
citire();
sol = 0;
rezolvare();
afisare();
return 0;
}