Cod sursa(job #831833)

Utilizator dantheroDan Terhesiu danthero Data 9 decembrie 2012 12:36:25
Problema Jocul Flip Scor 30
Compilator c Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <stdio.h>
#include <stdlib.h>

#define MAX 16
int A[MAX][MAX];
unsigned int m, n;
int maxim=0;

int readMatrix()
{
	int i, j;
	FILE *fin = fopen("flip.in", "r");
	if (!fin || fscanf(fin, "%u %u", &m, &n)!=2)
	{
		return 0;
	}
	for (i=0; i<m; i++)
	{
		for (j=0; j<n; j++)
		{
			fscanf(fin, "%d", &A[i][j]);
		}
	}
	fclose(fin);
	return 1;
}
void maxCol()
{
	int i, j, max=0;
	for (j=0; j<n; j++)
	{
		max = 0;
		for (i=0; i<m; i++)
		{
			max += A[i][j];
		}
		if (max<0)
		{
			for (i=0; i<m; i++)
			{
				A[i][j] *= -1;
			}
		}
	}
}
void maxLin()
{
	int i, j, max=0;
	for (i=0; i<m; i++)
	{
		max = 0;
		for (j=0; j<n; j++)
		{
			max += A[i][j];
		}
		if (max<0)
		{
			for (j=0; j<n; j++)
			{
				A[i][j] *= -1;
			}
			max *= -1;
		}
		maxim += max;
	}
}
void printResult()
{
	FILE *fout = fopen("flip.out", "w");
	if (!fout || !fprintf(fout, "%d", maxim))
	{
		return 0;
	}
	fclose(fout);
	return 1;
}
int main()
{
    readMatrix();
    maxCol();
    maxLin();
    printResult();
    return 0;
}