Cod sursa(job #2637149)

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

void ver_turn(int** v, int n, int m)
{
	int i, j;
	int 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;
	}
	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;
	}
}

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

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