Cod sursa(job #480421)

Utilizator noname15119Noname noname15119 Data 27 august 2010 18:06:31
Problema Jocul Flip Scor 70
Compilator c Status done
Runda Arhiva de probleme Marime 0.99 kb
#include<stdio.h>
#include<stdlib.h>

void verifica(int n,int m,long int a[17][17],int c[17],long int *suma)
   {
    long int s,ss;
    int i,j;
    s=0;
    for(i=0;i<n;i++)
     {
      ss=0;
      for(j=0;j<m;j++)
         {
          ss+=a[i][j]*c[j];            
         }
      if (ss<0) ss=0-ss;
      s+=ss;   
     }
   if (s>*suma)   *suma=s;
   }

void back(int l,int n,int m,int c[17],long int a[17][17],long int *suma)
   {
    if (l>=n)
      {
       verifica(n,m,a,c,suma);
       return;
      }
    c[l]=1;
    back(l+1,n,m,c,a,suma);
    c[l]=-1;
    back(l+1,n,m,c,a,suma);  
   }

int main()
  {
   FILE *f=fopen("flip.in","rt");
   FILE *g=fopen("flip.out","wt");
   int n,m,i,j;
   int c[17];
   long int a[17][17],suma=-17000000;
   fscanf(f,"%i",&n);
   fscanf(f,"%i",&m);
   for(i=0;i<n;i++)
     for(j=0;j<m;j++)
        fscanf(f,"%li",&a[i][j]);
   back(0,n,m,c,a,&suma);
   fprintf(g,"%li\n",suma);     
   fclose(f);
   fclose(g);
  }