Cod sursa(job #635251)

Utilizator iulian131Moldovan Iulian iulian131 Data 18 noiembrie 2011 23:39:26
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>
#define MAX 20
FILE *s,*c;
short int n,m,so[MAX];
int mat[MAX][MAX];
long int max=0;

void citeste()
{
    c = fopen("flip.in","r");
    s = fopen("flip.out","w");
    fscanf(c,"%d %d",&n,&m);
    for(short int i=0;i<=n;i++)
        for(short int h=0;h<=m;h++)
            fscanf(c,"%d",&mat[i][h]);
}

void suma()
{
    long int suma=0,s;
    for(short int i=0;i<=m-1;i++)
    {
        s = 0;
        for(short int h=0;h<=n-1;h++)
            if(so[h])
                s -= mat[h][i];
            else
                s += mat[h][i];
        if(s < 0)
            s *= -1;
        suma += s;
    }
    if(suma > max)
        max = suma;

}

void backtracking(short int a)
{
       if(a < n)
       {
           for(short int i=0;i<=1;i++)
            {
                so[a] = i;
                backtracking(a+1);
            }
       }
        else
        {
            suma();
        }
}

int main()
{
    citeste();
    backtracking(0);
    fprintf(s,"%d",max);
    fclose(s);
    fclose(c);
    return 0;
}