Cod sursa(job #1986550)

Utilizator lorena1999Marginean Lorena lorena1999 Data 28 mai 2017 15:47:50
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <iostream>
#include <fstream>

using namespace std;

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

long int n, m, a[20][20], s_in;

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

int suma()
    {
        long int s=0;
        for(int i=1; i<=n; i++)
            for(int j=1; j<=m; j++)
                s=s+a[i][j];
        return s;
    }

void opus_l(int l)
    {
        for(int j=1; j<=m; j++)
            a[l][j]=-a[l][j];
    }

void opus_c(int c)
    {
        for(int i=1; i<=n; i++)
            a[i][c]=-a[i][c];
    }

void bk(int l, int c)
    {
        if(l>n || c>m)
            return;
        for(int i=l; i<=n; i++)
        {
            opus_l(i);
            long int s=suma();
            if(s>s_in)
                s_in=s;
            bk(l+1, c);
            for(int j=1; j<=m; j++)
            {
                opus_c(j);
                s=suma();
                if(s>s_in)
                    s_in=s;
                bk(l, c+1);
            }
        }

    }

int main()
{
    citire();
    s_in=suma();
    bk(1, 1);
    g<<s_in;
}