Cod sursa(job #291698)

Utilizator andoAndronic Octavian ando Data 30 martie 2009 10:48:08
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream.h>
ifstream f("flip.in");
ofstream g("flip.out");
long v[20][20],n,m;
void comut(long a, long b){
  if(a==-1)
    for(int i=0; i<n; i++)
      v[i][b]*=-1;
  else
     for(int j=0; j<m; j++)
       v[a][j]*=-1;
}
long suma(long a, long b)    {long s=0;
  if(a==-1)
    for(int i=0; i<n; i++)
      s+=v[i][b];
  else
     for(int j=0; j<m; j++)
       s+=v[a][j];
  return s;
}
long sumac(long a, long b)    {long s=0;
  if(a==-1)
    for(int i=0; i<n; i++)
      s+=(v[i][b]*-1);
  else
     for(int j=0; j<m; j++)
       s+=(v[a][j]*-1);
  return s;
}

void read(){
  f>>n>>m;
  for(int i=0; i<n; i++)
    for(int j=0; j<m; j++)
      f>>v[i][j];
      }
void write(){  long s=0;
  for(int i=0; i<n;i++)
    for(int j=0; j<m; j++)
      s+=v[i][j];
  g<<s;
}
int main(){
  long i,j,sil,sic,scc,scl;
  read();
  for(i=0; i<n; i++)
    for(j=0; j<m; j++)
       if(v[i][j]<0) {
	  sil=suma(i,-1);
	  scl=sumac(i,-1);
	  sic=suma(-1,j);
	  scc=sumac(-1,j);
	  if(sil<scl&&(scl-sil)>(scc-sic)){comut(i,-1); i=0; j=0;}else
	  if(sic<scc&&(scl-sil)<(scc-sic)){comut(-1,j); i=0; j=0;}
       }
  write();
  f.close();
  g.close();
  return 0;
  }