Cod sursa(job #1402294)

Utilizator StefanRARapeanu-Andreescu Stefan StefanRA Data 26 martie 2015 14:33:36
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <stdio.h>
#include <stdlib.h>
int m, n, i, j, **v, sum, spoz, sneg;
int main()
{
	FILE *fp=fopen("flip.in", "r");
	fscanf(fp, "%d %d\n", &m, &n);
	v=(int **)malloc(m*sizeof(int *));
	for (i=0;i<m;i++)
		v[i]=(int *)malloc(n*sizeof(int));
	for (i=0;i<m;i++)
		for (j=0;j<n;j++)
			fscanf(fp, "%d", &v[i][j]);
	fclose(fp);
	for (i=0;i<m;i++)
	{
		spoz=0;
		sneg=0;
		for (j=0;j<n;j++)
		{
			if (v[i][j]>0)
				spoz+=v[i][j];
			else
				sneg+=v[i][j];
		}
		if (spoz<-sneg)
			for (j=0;j<n;j++)
				v[i][j]=-v[i][j];
	}
	for (i=0;i<n;i++)
	{
		spoz=0;
		sneg=0;
		for (j=0;j<m;j++)
		{
			if (v[j][i]>0)
				spoz+=v[j][i];
			else
				sneg+=v[j][i];
		}
		if (spoz<-sneg)
			for (j=0;j<n;j++)
				v[j][i]=-v[j][i];
	}
	for (i=0;i<m;i++)
		for (j=0;j<n;j++)
			sum+=v[i][j];
	for (i=0;i<m;i++)
		free(v[i]);
	free(v);
	fp=fopen("flip.out", "w");
	fprintf(fp, "%d", sum);
	fclose(fp);
	return 0;
}