Cod sursa(job #272968)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 8 martie 2009 00:07:03
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include<stdio.h>
#include<math.h>


FILE *f;
FILE *g;

int a[100][100],n,m;

void citire()
{
 int i,j;
 f=fopen("flip.in","r");
 g=fopen("flip.out","w");
 fscanf(f,"%d%d",&n,&m);
 for(i=1; i<=n; i++)
 for(j=1; j<=m; j++)
    fscanf(f,"%d",&a[i][j]);
}

void modiflin(int lin)
{
 int j;
 for(j=1; j<=m; j++)
    a[lin][j]=-a[lin][j];
}

void modifcol(int col)
{
 int i;
 for(i=1; i<=n; i++)
    a[i][col]=-a[i][col];
}


int veriflin(int lin)
{
 int i,s1=0,s2=0;
 for(i=1; i<=m; i++)
    if(a[lin][i]<0) s1+=-a[lin][i];
	       else s2+=a[lin][i];
 if(s1>s2) return 1;
 return 0;
}

int verifcol(int col)
{
 int i,s1=0,s2=0;
 for(i=1; i<=n; i++)
    if(a[i][col]<0) s1+=-a[i][col];
	       else s2+=a[i][col];
 if(s1>s2) return 1;
 return 0;
}

int suma()
{
 int i,j,s=0;
 for(i=1; i<=n; i++)
 for(j=1; j<=m; j++)
    s+=a[i][j];
 return s;
}

/*void afisare()
{
 int i,j;
 for(i=1; i<=n; i++)
 {
  for(j=1; j<=m; j++) printf("%d ",a[i][j]);
  printf("\n");
 }
 printf("\n");
}*/

void main()
{
 int i;
 citire();
 //afisare();
 for(i=1; i<=n; i++)
   if(veriflin(i)) modiflin(i);
 for(i=1; i<=m; i++)
   if(verifcol(i)) modifcol(i);
 //afisare();
 fprintf(g,"%d",suma());
 fclose(f);
 fclose(g);
}