Pagini recente » Cod sursa (job #1180045) | Cod sursa (job #1676576) | Cod sursa (job #2565331) | Cod sursa (job #396312) | Cod sursa (job #1443224)
#include <fstream>
#include <utility>
#include <array>
#include <limits>
using namespace std;
constexpr int nmax = 16;
using mat = array<array<int, nmax>, nmax>;
int find_max_sum_config(const mat& tabla, const uint16_t config, const int n, const int m){
int rez = 0;
for(int i = 0, suma_lin; i < n; ++i){
suma_lin = 0;
for(int j = 0; j < m; ++j){
suma_lin += (config&(1<<j) ? tabla[i][j] : -tabla[i][j]); }
rez += max(suma_lin, -suma_lin); }
return rez; }
int main(){
ifstream f("flip.in");
ofstream g("flip.out");
int n, m;
mat tabla;
f >> n >> m;
for(int i = 0; i < n; ++i){
for(int j = 0; j < m; ++j){
f >> tabla[i][j]; } }
uint16_t config = 0;
int rez = numeric_limits<decltype(rez)>::min();
for(int i = 0, maxim = 1<<m; i < maxim; ++i){
rez = max(rez, find_max_sum_config(tabla, config, n, m));
++config; }
g << rez;
return 0; }