Cod sursa(job #209637)

Utilizator albuaAlbu Alexandru albua Data 23 septembrie 2008 19:02:39
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.97 kb
#include <stdio.h>
#include <values.h>

//using namespace std;

FILE *f,*g;

long a[17][17];
long sc[17],sl[17],suma=0-MAXLONG;
int i,j,n,m;

long calculeaza_suma()
{
  int i,j;
	long tsum=0;
  for(i=1;i<=n;i++)
    tsum+=sl[i];
  return tsum;
}

void invcol(int j)
{
  int i;
	for(i=1;i<=n;i++)
	  {
	    a[i][j]*=-1;
			sl[i]+=2*a[i][j];
		}
}

void invlin(int i)
{
  int j;
	for(j=1;j<=m;j++)
	  {
	    a[i][j]*=-1;
			sc[j]+=2*a[i][j];
		}
}

int main()
{
  f=fopen("flip.in","r");
	g=fopen("flip.out","w");
	fscanf(f,"%d %d\n",&n,&m);
	//citire
	for(i = 1; i <= n;i++)
	  for(j = 1;j <= m;j++)
		  {
		    fscanf(f,"%ld",&a[i][j]);
				sc[j]+=a[i][j];
				sl[i]+=a[i][j];				
			}
	for(j=1;j<=m;j++)
	  if(sc[j]<0)
		  {
		    invcol(j);
				sc[j]=-sc[j];
			}
	for(i=1;i<=n;i++)
	  if(sl[i]<0)
		  {
		    invlin(i);
				sl[i]=-sl[i];
			}
	fprintf(g,"%ld\n",calculeaza_suma());
	fclose(f);   fclose(g);
  return 0;
}