Cod sursa(job #1308265)

Utilizator topala.andreiTopala Andrei topala.andrei Data 3 ianuarie 2015 20:57:15
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("flip.in");
ofstream g("flip.out");
int n, m;
int mat[16][16];
int mul(int x)
{
    int n = 1;
    while (x > 0)
        {n=-n;
        x=x-1;}
    return n;
}

void citire()
{
    f>>n>>m;
    for (int i = 0; i < n; i++)
        for (int j = 0; j < m; j++)
            f>>mat[i][j];
}

long int sol()
{
    long int res = 0;
    for (int i = 0; i<(1<<n); i++)
        {
        int t[16][16];
        for (int j = 0; j < n; j++)
        {
            int mult = mul((i & (1 << j)) != 0);
            for (int k = 0; k < m; k++)
                t[j][k] = mult * mat[j][k];
        }
        long int s = 0;
        for (int k = 0; k < m; k++)
        {
            long int sc = 0;
            for (int j = 0; j < n; j++)
                sc = sc+t[j][k];
            if (sc < 0) sc = -sc;
            s=s+sc;
        }
        res=max(res, s);
    }
    return res;
}

int main()
{
    citire();
    g << sol() << endl;;
    return 0;
}