Cod sursa(job #1740260)

Utilizator Andrei03Andrei Rosu Andrei03 Data 11 august 2016 12:27:28
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.16 kb
#include <fstream>

using namespace std;

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

void bkt(int i, int j);

int n, m, a[20][20], i, j, s, lin[20], col[20], mx;

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

    bkt(1,1);
    g<<mx<<'\n';
    g.close();


    return 0;
}


void bkt(int i, int j)
{
    int k;
    if (i==n+1 && j==m+1)
        if (s>mx) mx=s;

    if (i<n+1)
    {
        for (k=1;k<=m;k++)
            s=s+a[i][k];
        bkt(i+1, j);
        for (k=1;k<=m;k++)
            s=s-a[i][k];

        for (k=1;k<=m;k++)
            a[i][k]=-a[i][k];

        for (k=1;k<=m;k++)
            s=s+a[i][k];
        bkt(i+1, j);
        for (k=1;k<=m;k++)
            s=s-a[i][k];

        for (k=1;k<=m;k++)
            a[i][k]=-a[i][k];
    }

    if (j<m+1)
    {

        bkt(i, j+1);

        for (k=1;k<=n;k++)
            a[k][j]=-a[k][j];

        for (k=1;k<=n;k++)
            s=s+2*a[k][j];
        bkt(i, j+1);
        for (k=1;k<=n;k++)
            s=s-2*a[k][j];

        for (k=1;k<=n;k++)
            a[k][j]=-a[k][j];
    }


}