Cod sursa(job #1307305)

Utilizator Eduard6421Eduard Gabriel Eduard6421 Data 1 ianuarie 2015 21:35:43
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include<cstdio>
#define NMAX 20
using namespace std;
int v[NMAX][NMAX],n,m,smax;
bool calculat = false;
int sgn[NMAX];
int val()
{
    int sum=0;
    for(int i=1; i<=n; ++i)
    {
        int s=0;
        for(int j=1; j<=m; ++j)
            s+=(v[i][j]*sgn[j]);
        if(s<0)
            sum-=s;
        else
            sum+=s;
    }
    return sum;
}
void backtr(int a)
{
    if(a==m+1)
    {
        int x=val();
        if(!calculat)
            smax=x,calculat=true;
        if(x>smax)
            smax=x;
    }
    else
    {
        sgn[a]=1;
        backtr(a+1);
        sgn[a]=-1;
        backtr(a+1);
    }
}
int main()
{
    int i,j;
    freopen("flip.in","r",stdin);
    freopen("flip.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(i=1; i<=n; ++i)
        for(j=1; j<=m; ++j)
            scanf("%d",&v[i][j]);
    backtr(0);
    printf("%d",smax);
}