Cod sursa(job #206872)

Utilizator PavelRazvanPavel Razvan PavelRazvan Data 10 septembrie 2008 14:50:23
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.11 kb
#include<stdio.h>
int n,s,si,j,i,m,a[101][101];
void print ()
{
    int i;
    printf ("%d",si);
}

int check (int val)
{
    for(i=1;i<=n;++i)
    for(j=1;j<=m;++j)
    s+=a[i][j];
    if(val<s)
    return 1;
    else
    return 0;
}

int back2(int k)
{
    int i;
    if(k==m+1)
    return 0;
    else
    {
        for(i=1;i<=n;++i)
        a[i][k]*=(-1);
        if(check(si))
        si=s;
        else
        for(i=1;i<=n;++i)
        a[i][k]*=(-1);
        s=0;
        back2(k+1);
    }
}

int back(int k)
{
    int i;
    if(k==n+1)
    return 0;
    else
    {
        for(i=1;i<=m;++i)
        a[k][i]*=(-1);
        if(check(si))
        si=s;
        else
        for(i=1;i<=m;++i)
        a[k][i]*=(-1);
        s=0;
        back(k+1);
    }
}
int main ()
{
    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",&a[i][j]);
    for(i=1;i<=n;++i)
    for(j=1;j<=m;++j)
    si+=a[i][j];
    back (1);
    back2 (1);
    print ();
    return 0;
}