Cod sursa(job #2453019)

Utilizator cristi1990anCornea Cristian cristi1990an Data 2 septembrie 2019 10:54:53
Problema Jocul Flip Scor 30
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	FILE* f = fopen("flip.in", "rt");
	int N, M, v[100][100], x, i, j, s1, s2;

	fscanf(f, "%d", &N);
	fscanf(f, "%d", &M);

	for ( i = 0; i <= N - 1; i++)
		for ( j = 0; j <= M - 1; j++)
			fscanf(f, "%d", &v[i][j]);

	for (i = 0; i <= N - 1; i++)
	{
		for (j = 0; j <= M - 1; j++)
			printf("%d ", v[i][j]);
		printf("\n");
	}
	
	do
	{
		x = 0;
		for (i = 0; i <= N - 1; i++)
		{
			s1 = s2 = 0;
			for (j = 0; j <= M - 1; j++)
			{
				if (v[i][j] >= 0)
					s1 = s1 + v[i][j];
				else
					s2 = s2 + v[i][j];
			}
			s2 = s2 * (-1);
			if (s2 > s1)
			{
				x = 1;
				for (j = 0; j <= M - 1; j++)
					v[i][j] = v[i][j] * (-1);
			}
		}
		for (j = 0; j <= M - 1; j++)
		{
			s1 = s2 = 0;
			for (i = 0; i <= N - 1; i++)
			{
				if (v[i][j] >= 0)
					s1 = s1 + v[i][j];
				else
					s2 = s2 + v[i][j];
			}
			s2 = s2 * (-1);
			if (s2 > s1)
			{
				x = 1;
				for (i = 0; i <= N - 1; i++)
					v[i][j] = v[i][j] * (-1);
			}
		}
		
	} while (x == 1);

	s1 = 0;

	for (i = 0; i <= N - 1; i++)
		for (j = 0; j <= M - 1; j++)
			s1 = s1 + v[i][j];
	printf("\n");

	for (i = 0; i <= N - 1; i++)
	{
		for (j = 0; j <= M - 1; j++)
			printf("%d ", v[i][j]);
		printf("\n");
	}

	f = fopen("flip.out", "wt");
	fprintf(f, "%d\n", s1);
	fflush(stdout);
	fclose(f);

	return 0;
}