Cod sursa(job #1986546)

Utilizator lorena1999Marginean Lorena lorena1999 Data 28 mai 2017 15:28:30
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.5 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()
    {
        for(int i=1; i<=n; i++)
        {
            opus_l(i);
            long int s=suma();
            if(s>s_in)
            {
                s_in=s;
                bk();
            }
            s=suma();
            opus_c(i);
            if(s>s_in)
            {
                s_in=s;
                bk();
            }
            for(int j=1; j<=m; j++)
            {
                opus_c(j);
                s=suma();
                if(s>s_in)
                {
                    s_in=s;
                    bk();
                }
                s=suma();
                opus_l(j);
                if(s>s_in)
            {
                s_in=s;
                bk();
            }
            }
        }
    }

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