Cod sursa(job #2081193)

Utilizator AndaionicaIonica Anda Maria Andaionica Data 4 decembrie 2017 12:22:00
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.23 kb
#include <fstream>
using namespace std;
ifstream f("flip.in");
ofstream g("flip.out");
int n,m,i,j,v[17][17],x[17],Max;
void back(int k)
{
    x[k]=1;
    int j,l;
    if(k==m)
    {
        int st=0;
        for(j=1;j<=n;j++)
        {
            int s=0;
            for(l=1;l<=m;l++)
                if(x[l]==0)
                    s+=v[j][l];
                    else
                        s-=v[j][l];
            if(s<=0)
                st-=s;
                else
                    st+=s;
        }
        Max=max(Max,st);
    }
        else
            back(k+1);
    x[k]=0;
     if(k==m)
    {
        int st=0;
        for(j=1;j<=n;j++)
        {
            int s=0;
            for(l=1;l<=m;l++)
                if(x[l]==0)
                    s+=v[j][l];
                    else
                        s-=v[j][l];
            if(s<=0)
                st-=s;
                else
                    st+=s;
        }
        Max=max(Max,st);
    }
        else
            back(k+1);
}
int main()
{
    f>>n>>m;
    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++)
        {
            f>>v[i][j];
            Max+=v[i][j];
        }
    back(1);
    g<<Max;
    return 0;
}