Cod sursa(job #2637153)

Utilizator CRT12Cosmin R CRT12 Data 21 iulie 2020 15:53:19
Problema Jocul Flip Scor 30
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.29 kb
#include <stdio.h>
#include <stdlib.h>

void ver_turn(long** v, int n, int m)
{
	int i, j;
	long poz = 0, neg = 0;
	for (j = 0; j < m; j++)
	{
		for (i = 0; i < n; i++)
		{
			if (v[i][j] < 0) neg += v[i][j];
			else poz += v[i][j];
		}
		if (((-1) * neg) > poz)
		{
			for (i = 0; i < n; i++)
			{
				v[i][j] = v[i][j] * (-1);
			}
		}
		neg = 0;
		poz = 0;
	}
	neg = 0;
	poz = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			if (v[i][j] < 0) neg += v[i][j];
			else poz += v[i][j];
		}
		if (((-1) * neg) > poz)
		{
			for (j = 0; j < m; j++)
			{
				v[i][j] = v[i][j] * (-1);
			}
		}
		neg = 0;
		poz = 0;
	}
}

long total(long** v, int n, int m)
{
	int i, j;
	long sum = 0;
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			sum += v[i][j];
		}
	}
	return sum;
}

int main()
{
	long **vec, sum;
	int i, j, n, m;
	FILE* in = fopen("flip.in", "rt");
	FILE* out = fopen("flip.out", "wt");
	fscanf(in, "%d %d\n", &n, &m);
	vec = calloc(n, sizeof(long*));
	for (i = 0; i < n; i++)
	{
		vec[i] = calloc(m, sizeof(long));
	}
	for (i = 0; i < n; i++)
	{
		for (j = 0; j < m; j++)
		{
			fscanf(in, "%ld", &vec[i][j]);
		}
	}
	ver_turn(vec, n, m);
	sum = total(vec, n, m);
	fprintf(out, "%ld\n", sum);
	for (i = 0; i < n; i++)
	{
		free(vec[i]);
	}
	free(vec);
	fclose(in);
	fclose(out);
	return 0;
}