Cod sursa(job #94025)

Utilizator igorPirnau Igor igor Data 21 octombrie 2007 14:07:37
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<fstream.h>

#define mx 20 

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

long c[mx][mx],b[mx][mx];
int a[mx],i,j,m,n;
long long s1,s2,S,max; 

void start()
{
    for(i=1;i<=m;i++) 
        if(a[i])
            for(j=1;j<=n;j++) b[j][i]=-1*c[j][i];
        else for(j=1;j<=n;j++) b[j][i]=c[j][i];

    S=0;
    for(i=1;i<=n;i++)
    {
        s1=0; s2=0;
        for(j=1;j<=m;j++) if(b[i][j]>0) s1=s1+b[i][j];
                            else s2=s2-b[i][j];
        if(s1>s2) S=s1+S-s2;
            else S=s2+S-s1;
    }
    
    if(S>max) max=S;
}

void back(int k)
{   
    if(k==m+1)
    {
        start();
        return;
    }
    a[k]=0;
    back(k+1);
    a[k]=1;
    back(k+1);
}


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

    back(1);
    
    g<<max;
    g.close();
    return 0;
}