Cod sursa(job #2479179)

Utilizator Stefan911Stefan Halasz Stefan911 Data 23 octombrie 2019 14:50:49
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.24 kb
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;

ifstream in("flip.in");
ofstream out("flip.out");

long long** matr;
int n, m;

int finalSum() {
	long long result = 0;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			result += matr[i][j];
		}
	}
	return result;
}


int main() {
	in >> n >> m;

	matr = new long long* [n];
	for (int i = 0; i < n; i++) {
		matr[i] = new long long[m];
	}

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			in >> matr[i][j];
		}
	}

	for (int i = 0; i < n; i++) {
		long long sumNeg = 0, sumPos = 0;
		for (int j = 0; j < m; j++) {
			if (matr[i][j] < 0) sumNeg += matr[i][j];
			else sumPos += matr[i][j];
		}

		if (abs(sumNeg) > sumPos) {
			//cout << "AM MODIFICAT I: " << i << endl;
			for (int j = 0; j < m; j++) {
				matr[i][j] *= -1;
			}
		}
	}

	for (int j = 0; j < m; j++) {
		long long sumNeg = 0, sumPos = 0;
		for (int i = 0; i < n; i++) {
			if (matr[i][j] < 0) sumNeg += matr[i][j];
			else sumPos += matr[i][j];
		}

		if (abs(sumNeg) > sumPos) {
			//cout << "AM MODIFICAT J: " << j << endl;
			for (int i = 0; i < n; i++) {
				matr[i][j] *= -1;
			}
		}
	}

	out << finalSum();
	return 0;
}