Cod sursa(job #664981)

Utilizator suzanicaSuzanica Mihu suzanica Data 21 ianuarie 2012 12:55:44
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <stdio.h>
#define MAX 20
FILE *s,*c;
int n,m,so[MAX];
int mat[MAX][MAX];
int max=0;

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

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

void backtracking(int a)
{
       if(a < n)
       {
           for(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;
}