Cod sursa(job #469007)

Utilizator duncaDunca Cristian dunca Data 5 iulie 2010 17:56:06
Problema Jocul Flip Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<stdio.h>
#define MAX 100
int sol[MAX],mx,m[MAX][MAX];
 int a,b;
int suma()  {
    int ax, rez = 0,i,j;
    for (i = 1 ; i <= a ; i++)    {
        ax = 0;
        for (j = 1 ; j <= b ; j++)
            ax += sol[j] ? (- m[i][j]) : m[i][j];
        if (ax < 0)
            ax = -ax;
        rez += ax;
   }
    return rez;
}
 
void intoarce (int k)   {
    int x, i,j;
    if (k == b + 1)
        x = suma(), mx = x > mx ? x : mx;
    else  {
        for (i = 0 ; i < 2 ; i++)   {
            sol[k] = i;
            intoarce(k + 1);
        }
    }
}


int main(){
    int i,j;
    FILE *in=fopen("flip.in","r");
    FILE *out=fopen("flip.out","w");
    fscanf(in,"%d %d\n",&a,&b);
    if ( a<=1 && b>= 16)
       return 1;
    for (i=0;i<a;i++)
        for (j=0;j<b;j++)
            fscanf(in,"%d",&m[a][b]);
    intoarce(1);
    fprintf(out,"%d",mx);                       
return 0;
}