Cod sursa(job #331048)

Utilizator bdrzrBarbu Daniel bdrzr Data 12 iulie 2009 14:46:59
Problema Jocul Flip Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdlib.h>
#include <stdio.h>
int a [20][20], st [20];
int m, n;
long suma = 0;

void max () {
     int i, j;
     long s = 0, s1 = 0;     
     for (i=1; i<=m; ++i) {
         for (j=1; j<=n; ++j)
             s1 += a [i][j] * st [j];
         if (s1 < 0) s += -s1;
            else s += s1;
         s1 = 0;
     }
     if (suma < s) suma = s;
}

void back (int k) {
     int i;
     for (i=-1; i<=1; i=i+2)   {
         st [k] = i;
     if (k == n) max ();
        else back (k+1);    
     }
}

int main () {
    FILE *f = fopen ("flip.in", "r");
    fscanf (f, "%d %d", &m, &n);
    int i, j;
    for (i=1; i<=m; ++i)
        for (j=1; j<=n; ++j)
            fscanf (f, "%d", &a [i][j]);  
    fclose (f);
    
    back (1);
    f = fopen ("flip.out", "w");
    fprintf (f, "%ld", suma);
    fclose (f);
 return 0;
}