Cod sursa(job #68128)

Utilizator DjSefuWrong name DjSefu Data 26 iunie 2007 17:06:51
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
FILE *f=fopen("flip.in","r"),
     *g=fopen("flip.out","w");
long n,m,i,j,a[17][17];
long long s,s2,sf;
void lin(long ar[17][17],long l)
{ if(l==n){ s=0;s2=0;
	    for(i=1;i<=n;i++) for(j=1;j<=m;j++) s+=ar[i][j];
	    for(i=1;i<=m;i++) ar[i][l]=-ar[i][l];
	    for(i=1;i<=n;i++) for(j=1;j<=m;j++) s2+=ar[i][j];
	    if(s>s2&&s>sf) sf=s;
	    else if(s2>sf) sf=s2;
	  }
   else { lin(ar,l+1);
	  for(i=1;i<=m;i++) ar[i][l]=-ar[i][l];
	  lin(ar,l+1);
	}
}
void col(long ar[17][17],long c)
{ if(c==m) { lin(ar,1);
	     for(i=1;i<=n;i++) ar[i][c]=-ar[i][c];
	     lin(ar,1);
	   }
  else{ col(ar,c+1);
	for(i=1;i<=n;i++) ar[i][c]=-ar[i][c];
	col(ar,c+1);
      }
}
int main()
{ fscanf(f,"%d %d",&n,&m);
  for(i=1;i<=n;i++) for(j=1;j<=m;j++) fscanf(f,"%ld",&a[i][j]);
  col(a,1);
  fprintf(g,"%lld\n",sf);
  fclose(f);
  fclose(g);
  return 0;
}