Cod sursa(job #413742)

Utilizator Mihai_OrtelecanOrtelecan Mihai Alexandru Mihai_Ortelecan Data 9 martie 2010 04:50:59
Problema Jocul Flip Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.18 kb
/*
 * flip.c
 *
 *  Created on: Mar 9, 2010
 *      Author: mihai
 */

#include <stdio.h>
#include <stdlib.h>

int main() {

	FILE * fin = fopen( "flip.in" , "r" );
	FILE * fout = fopen( "flip.out" , "w" );

	int l, c, i, j, neg = 0, poz = 0, sum = 0;

	fscanf( fin , "%d %d" , &l , &c );

	int A[l][c], linii[l], coloane[c];

	for (i = 0; i < l; ++i) {
		for (j = 0; j < c; ++j) {

			fscanf( fin , "%d" , &A[i][j] );
		}
	}

	for (i = 0; i < l; ++i) {
		for (j = 0; j < c; ++j) {

			if (A[i][j] <= 0) {
				neg += A[i][j];
			} else {
				poz += A[i][j];
			}
		}

		( poz >= -neg ) ? ( linii[i] = 1 ) : ( linii[i] = -1 );
		poz = neg = 0;
	}

	for (i = 0; i < c; ++i) {
		for (j = 0; j < l; ++j) {

			( A[j][i] <= 0 ) ? ( neg += A[j][i] ) : ( poz += A[j][i] );

		}
		( poz >= -neg ) ? ( coloane[i] = 1 ) : ( coloane[i] = -1 );
		poz = neg = 0;
	}

	for (i = 0; i < l; ++i) {

		if (linii[i] == -1) {

			for (j = 0; j < c; j++) {

				A[i][j] *= -1;

			}
		}
	}

	for (i = 0; i < c; i++) {

		if (coloane[i] == -1) {

			for (j = 0; j < l; ++j) {

				A[j][i] *= -1;
			}
		}
	}

	for (i = 0; i < l; ++i) {
		for (j = 0; j < c; j++) {
			sum += A[i][j];
		}
	}

	fprintf(fout,"%d",sum);
	return 0;
}