Cod sursa(job #523508)

Utilizator ucc_5Usurelu Catalin ucc_5 Data 18 ianuarie 2011 13:23:49
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
#define nmax 17
#define mmax 17
using namespace std;

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

int n,m,size_max,a[nmax][mmax];
bool s[nmax]; //true=1, false=-1

void read ()
{
    f>>n>>m;
    for (int i=1; i<=n; i++)
        for (int j=1; j<=m; j++)
        {
            f>>a[i][j];
        }
    f.close ();
}

void solve (int k)
{
    if (k<=n)
    {
        s[k]=true;
        solve (k+1);
        s[k]=false;
        solve (k+1);
    }
    else
    {
        int size=0;
        int suma_col;
        for (int i=1; i<=m; i++)
        {
            suma_col=0;
            for (int j=1; j<=n; j++)
                suma_col+=((s[j]==true)?a[j][i]:-a[j][i]);
            if (suma_col<0)
                size-=suma_col;
            else
                size+=suma_col;
        }
        if (size>size_max)
            size_max=size;
    }
}

void output_result ()
{
    g<<size_max;
    g.close ();
}

int main ()
{
    read ();
    solve (1);
    output_result ();
    return 0;
}