Cod sursa(job #34531)

Utilizator n_lichkingSentes Norbert n_lichking Data 20 martie 2007 21:05:21
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb

#include<stdio.h>
int n,m;
long a[17][17];
FILE *f=fopen("flip.in","r");
FILE *g=fopen("flip.out","w");

void cit()
{
 fscanf(f,"%d%d",&n,&m);
  for(register int i=1;i<=n;i++)
	for(register int j=1;j<=m;j++)
	fscanf(f,"%ld",&a[i][j]);

}

void flip1()
{ long sp,sn;

  for(register int i=1;i<=n;i++)
  {sp=sn=0;
   for(register int j=1;j<=m;j++)
    if(a[i][j]>0)
    sp+=a[i][j];
	else sn+=a[i][j];

   if(sp<-sn)
    for(register int j=1;j<=m;j++)
      a[i][j]*=-1;
   }



}


void flip2()
{ long sp,sn;

  for(register int j=1;j<=m;j++)
  {sp=sn=0;
   for(register int i=1;i<=n;i++)
   if(a[i][j]>0)
    sp+=a[i][j];
	else sn+=a[i][j];

   if(sp<-sn)
    for(register int i=1;i<=n;i++)
      a[i][j]*=-1;
   }


}
int adun()
{   long s=0;
 for(register int i=1;i<=n;i++)
  for(register int j=1;j<=m;j++)
   s+=a[i][j];

   return s;

}

int main()
{
 cit();
 flip1();
 flip2();
 fprintf(g,"%ld",adun());
 fcloseall();
 return 0;
}