Cod sursa(job #1300572)

Utilizator marian98Horodnic Gheorghe Marian marian98 Data 24 decembrie 2014 16:30:53
Problema Jocul Flip Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.33 kb
#include<iostream>
#include<fstream>
using namespace std;
long long A[17][17],n,m,s=0,s_max=0,linii[17],coloane[17];
void suma()
{
    s=0;
    for (unsigned i=1;i<=n;i++)
    {
        for (unsigned j=1;j<=m;j++)
        {
            long long numar=A[i][j];
            if (linii[i]) numar=numar*(-1);
            if (coloane[j]) numar=numar*(-1);
            s+=numar;
        }
    }
    if (s>s_max) s_max=s;
}
void bkt2()
{
    unsigned k=1;
    coloane[k]=-1;
    while(k)
        if (coloane[k]<1)
        {
            coloane[k]++;
            if (k==m)
            {
                suma();
            }
            else
            {
                k++;
                coloane[k]=-1;
            }
        }
        else k--;
}
void bkt()
{
    unsigned k=1;
    linii[k]=-1;
    while(k)
        if (linii[k]<1)
        {
            linii[k]++;
            if (k==n)
            {
                bkt2();
            }
            else
            {
                k++;
                linii[k]=-1;
            }
        }
        else k--;
}
int main()
{
    ifstream f("flip.in");
    ofstream f1("flip.out");
    f>>n>>m;
    for (unsigned i=1;i<=n;i++)
        for (unsigned j=1;j<=m;j++)
            f>>A[i][j];

    bkt();
    f1<<s_max<<"\n";
    return 0;
}