Cod sursa(job #1200117)

Utilizator ValyGabrielMitrea Valentin Gabriel ValyGabriel Data 21 iunie 2014 22:00:25
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include <stdio.h>


int joculFlip(int n, int m, int matrix[16][16])
{
	int i, j, suma = 0, aux;

	//caut ce linii trebuie sa inmultesc cu -1
	for (i = 0; i < n; i ++)
	{
		aux = 0;
		for (j = 0; j < m; j ++)
			aux += matrix[i][j];

		//daca suma liniei este mai mica ca 0, atunci trebuie sa fac switch
		if (aux < 0)
			for (j = 0; j < m; j ++)
				matrix[i][j] = -matrix[i][j];
	}

	//caut ce coloane trebuie sa inmultesc cu -1
	for (j = 0; j < m; j ++)
	{
		aux = 0;
		for (i = 0; i < n; i ++)
			aux += matrix[i][j];

		//daca suma coloanei este mai mica ca 0, atunci trebuie sa fac switch
		if (aux < 0)
			for (i = 0; i < n; i ++)
				matrix[i][j] = -matrix[i][j];
	}


	//calculez suma elementelor matricii dupa modificari
	for (i = 0; i < n; i ++)
		for (j = 0; j < m; j ++)
			suma += matrix[i][j];

	return suma;
}


int main(int argc, char** argv)
{
    int n, m, matrix[16][16];
    FILE *in, *out;
    
    in = fopen("flip.in", "r");
    out = fopen("flip.out", "w");
    
    fscanf(in, "%i%i", &n, &m);

	for (int i = 0; i < n; i ++)
		for (int j = 0; j < m; j ++)
			fscanf(in, "%i", &matrix[i][j]);
	

    fprintf(out, "%i", joculFlip(n, m, matrix));


    fclose(in);
    fclose(out);
    
    return 0;
}