Cod sursa(job #346794)

Utilizator adibAdrian Bona adib Data 9 septembrie 2009 18:23:19
Problema Jocul Flip Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

int m,n;
long int max,mat[16][16],x[16];

int reactsume(int linie)
{
int i,j;
for (j=0;j<m;j++)
  {
  x[j]=0;
  for(i=0;i<n;i++)
    if (i==linie)
      x[j]-=mat[i][j];
    else
      x[j]+=mat[i][j];
  }
return 0;
}


int back(int k)
{
int t;
long int s=0;
if (k<m&&k>=0)
  {
    s=0;
    for(t=0;t<m;t++)
      s+=x[t];
    if (s>max)
      max=s;
    back(k+1);


    x[k]=-x[k];
    s=0;
    for(t=0;t<m;t++)
      s+=x[t];
    if (s>max)
      max=s;
    back(k+1);
  }

return 0;
}




int main()
{
int i,j;
FILE *f;
f=fopen("flip.in","r");
fscanf(f,"%d",&n);
fscanf(f,"%d",&m);
for (i=0;i<n;i++)
  for (j=0;j<m;j++)
    fscanf(f,"%ld",&mat[i][j]);
fclose(f);

reactsume(-1);
back(0);
for(i=0;i<n;i++)
  {
  reactsume(i);
  back(0);
  }


f=fopen("flip.out","w");
fprintf(f,"%ld",max);
fclose(f);


return 0;
}