Cod sursa(job #281489)

Utilizator brainwashed20Alexandru Gherghe brainwashed20 Data 15 martie 2009 09:01:50
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.46 kb

#include<stdio.h>  
#include<math.h>  
  
  
FILE *f;  
FILE *g;  
  
long a[100][100];
int 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,"%ld",&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;  
}  
  
long suma()  
{  
 int i,j;  
 long 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"); 
}*/  
  
int main(void)  
{  
 int i;  
 citire();  
 //afisare();  
 for(i=1; i<=m; i++)  
   if(verifcol(i)) modifcol(i);  
 for(i=1; i<=n; i++)  
   if(veriflin(i)) modiflin(i);  
 //afisare();  
 fprintf(g,"%ld",suma());  
 fclose(f);  
 fclose(g);  
 return 0;  
}