Cod sursa(job #1318696)

Utilizator redducks100Andronache Simone redducks100 Data 16 ianuarie 2015 11:47:43
Problema Jocul Flip Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <fstream>
#include <iostream>
 
using namespace std;
 
const int maxn = 20;
 
int n, m, a[maxn][maxn], b[maxn][maxn];
 
int main() {
    ifstream fin("flip.in");
    ofstream fout("flip.out");
 
    fin >> n >> m;
    int ans = 0;
    for(int i = 0 ; i < n ; ++ i)
        for(int j = 0 ; j < m ; ++ j) {
            fin >> a[i][j];
            ans += a[i][j];
        }
    for(int conf = 0 ; conf < (1 << m) ; ++ conf) {
        int actsum = 0;
        for(int i = 0 ; i < n ; ++ i) {
            int sum = 0;    
            for(int j = 0 ; j < m ; ++ j)
                if(conf & (1 << j)) {
                    a[i][j] = -a[i][j];
                    sum += a[i][j];
                }
                else
                    sum += a[i][j];
                 
            actsum += max(sum, -sum);
        }
        ans = max(ans, actsum); 
    }
    fout << ans << '\n';
     
 
}