Cod sursa(job #1353450)

Utilizator GosulyGosuly Robert Gosuly Data 21 februarie 2015 14:16:57
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>

std::ifstream in("flip.in");
std::ofstream out ("flip.out");

int n,m,mx=0, V[17][17],Z[17][17];
bool L[17];

int check(int k)
{
    int a=0;
    for(int i=1;i<=n;i++)
         {
            if(L[i]==0)
                a+=V[k][i];
            else
                a+=Z[k][i];

         }
    if(a<0)
        return -a;
    else
        return a;
}
void sum()
{
    int t=0;
    for (int i=1;i<=n;i++)
        t+=check(i);
    if(mx<t)
        mx=t;

}

void read()
{
    in>>n>>m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            {
                in>>V[i][j];
                Z[i][j]=-V[i][j];

            }

}


void combcol(int k,int a,int j)
{
    if(a<=k)
    {
        for(int i=j;i<=m;i++)
        {

             L[i]=!L[i];
            combcol(k,a+1,i);
             L[i]=!L[i];
        }

    }
    else
    {

            sum();

    }

}

int main()
{
    read();
    if(n+m>27)
        for(int i=0;i<=m/2;i++)
            combcol(i,1,1);
    else
        for(int i=0;i<=m-2;i++)
            combcol(i,1,1);

    out<<mx;



}