Cod sursa(job #1830798)

Utilizator Andrei_CotorAndrei Cotor Andrei_Cotor Data 17 decembrie 2016 10:15:19
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.15 kb
#include<fstream>
using namespace std;
ifstream fi("flip.in");
ofstream fo("flip.out");
int i,j,A[20][20],B[20][20],S[50],n,m,rez;

void g(int k)
{
    int i,j,x=0;
    if(k==(n+m))
    {
        for(i=1; i<=n; i++)
        {
            for(j=1; j<=m; j++)
            {
                if(S[i]==1)
                    B[i][j]=-A[i][j];
                else
                    B[i][j]=A[i][j];
            }
        }
        for(i=n+1; i<=(n+m); i++)
        {
            for(j=1; j<=n; j++)
            {
                if(S[i]==1)
                    B[j][i-n]=-A[j][i-n];
            }
        }
        for(i=1; i<=n; i++)
        {
            for(j=1; j<=m; j++)
            {
                x=x+B[i][j];
            }
        }
        if(x>rez)
            rez=x;
    }
    else
    {
        for(i=0; i<=1; i++)
        {
            S[k+1]=i;
            g(k+1);
        }
    }
}

int main()
{
    fi>>n>>m;
    for(i=1; i<=n; i++)
    {
        for(j=1; j<=m; j++)
        {
            fi>>A[i][j];
        }
    }
    g(0);
    fo<<rez<<"\n";
    fi.close();
    fo.close();
    return 0;
}