Cod sursa(job #100937)

Utilizator DjSefuWrong name DjSefu Data 12 noiembrie 2007 20:52:28
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
FILE *f=fopen("flip.in","r"),
     *g=fopen("flip.out","w");
long n,m,i,j,a[17][17],lc,t;
int ver()
{ long i,j,s,sm=0;
  for(i=1;i<=n;++i){ s=0;
		     for(j=1;j<=m;++j) s+=a[i][j];
		     if(s<sm) sm=s,t=1,lc=i;
		   }
  for(i=1;i<=m;++i) { s=0;
		      for(j=1;j<=n;++j) s+=a[j][i];
		      if(s<sm) sm=s,t=2,lc=i;
		    }
  if(sm<0) return 1;
  return 0;
}
void schimba()
{ if(t==1) for(i=1;i<=m;++i) a[lc][i]=-a[lc][i];
  else for(i=1;i<=n;++i) a[i][lc]=-a[i][lc];
}
void afis()
{ long s=0;
  for(i=1;i<=n;++i) for(j=1;j<=m;++j) s+=a[i][j];
  fprintf(g,"%ld\n",s);
}
int main()
{ fscanf(f,"%ld %ld",&n,&m);
  for(i=1;i<=n;++i) for(j=1;j<=m;++j) fscanf(f,"%ld",&a[i][j]);
  while(ver()) schimba();
  afis();
  fclose(f);
  fclose(g);
  return 0;
}