Cod sursa(job #125799)

Utilizator rayvianPricope Razvan rayvian Data 20 ianuarie 2008 18:23:23
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb

#include <stdio.h>
#include <stdlib.h>
int v[100][100];

//n linii si m coloane
void citire(int &n, int &m)
{
	FILE *f=fopen("flip.in","r");
	fscanf(f,"%d %d",&n,&m);
	for(int i=1; i<=n;i++)
	for(int j=1; j<=m; j++)
	fscanf(f,"%d",&v[i][j]);
	fclose(f);
}
int main()
{
	int n,m;
	citire(n,m);
	
	//se verifica intai suma de pe linii
  int i,j;
	for(i=1; i<=n; i++)
	{
		int spoz=0,sneg=0;
		for(j=1; j<=m; j++)
		if(v[i][j]<0) sneg+=v[i][j];
		else spoz+=v[i][j];
		
		//se inverseaza elementele
		if(spoz<sneg*(-1))
		{
		for(j=1; j<=m; j++)
		v[i][j]=v[i][j]*(-1);
	  }
	}
	//pe coloanae
	for(i=1; i<=m; i++)
	{
		int spoz=0,sneg=0;
		for(j=1; j<=n; j++)
		if(v[j][i]<0) sneg+=v[j][i];
		else spoz+=v[j][i];
		
		//se inverseaza elementele
		if(spoz<sneg*(-1))
		{
		for(j=1; j<=m; j++)
		v[j][i]=v[j][i]*(-1);
	  }
	}	
	int suma=0;
	for(int i=1; i<=n; i++)
	for(int j=1; j<=m; j++)
	suma+=v[i][j];
	FILE *g=fopen("flip.out","w");
	fprintf(g,"%d",suma);
	fclose(g);
	return 0;
}