Cod sursa(job #1140074)

Utilizator andreiagAndrei Galusca andreiag Data 11 martie 2014 18:35:32
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include <fstream>
#include <string.h>

using namespace std;
const int Nmax = 16;

int A[Nmax][Nmax];
int v[Nmax];

inline int max(int x, int y) { return x > y ? x : y; }

int main()
{
    ifstream f ("flip.in");
    ofstream g ("flip.out");

    int N, M;
    f >> N >> M;
    for (int i = 0; i < N; i++)
    for (int j = 0; j < M; j++)
        f >> A[i][j];


    int best = -1;
    int sum = 0;
    for (int n = 0; n < (1 << N); n++) {
        memset(v, 0, sizeof(v));
        sum = 0;
        for (int i = 0; i < N; i++)
            if (n & (1 << i))
                for (int j = 0; j < M; j++)
                    v[j] += -A[i][j];
            else
                for (int j = 0; j < M; j++)
                    v[j] += A[i][j];

        for (int j = 0; j < M; j++)
            sum += v[j] > 0 ? v[j] : -v[j];

        best = max(best, sum);
    }
    g << best << '\n';

    return 0;
}