Cod sursa(job #28289)

Utilizator undogSavu Victor Gabriel undog Data 7 martie 2007 18:02:51
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include<stdio.h>

long mat[20][20];
long max,rem[20],tmp,sum[20];

int m,n;

int check();
int savu_run(int p);
int final(int p);


int main(){
 freopen("flip.in","rt",stdin);
 freopen("flip.out","w+",stdout);
 int i,j;
 scanf("%d%d",&m,&n);

 for(i=0;i<n;i++)
  for(j=0;j<m;j++)
   scanf("%ld",&mat[i][j]);
 savu_run(0);

 printf("%ld",max);

}

savu_run(int p){
 int v;
 for(v=0;v<2;v++){
     rem[p]=v;
  if(final(p))check();
   else savu_run(p+1);
 }
}


int check(){
 int i,j;
 long tmp=0;
 for(i=0;i<m;i++)
  sum[i]=0;
  for(j=0;j<m;j++){
 for(i=0;i<n;i++)
   if(rem[i]==1)
    sum[j]-=mat[i][j];
   else
    sum[j]+=mat[i][j];
  if(sum[j]<0)tmp-=sum[j];
	else  tmp+=sum[j];
 }
 if(max<tmp)
  max=tmp;
return 1;
}

int final(int p){
return p==n-1;
}