Cod sursa(job #2193166)

Utilizator InfoMaster2k18Stefan Dragos InfoMaster2k18 Data 9 aprilie 2018 08:39:10
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
	/* JOCUL FLIP */
	
	ofstream output;
	ifstream input;
	output.open("flip.out");
	input.open("flip.in");
	int n, m, fsum = 0; // FSum = suma maxima (raspuns final)
	input >> n >> m;
	int mat[n][m];
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			input >> mat[i][j];
		}
	}
	bool checker = false;
	while(checker) {
		for(int i = 0; i < n; i++) {
			int sum = 0;
			for(int j = 0; j < m; j++) {
				sum += mat[i][j];	
			}
			if(-sum > sum) {
				checker = true;
			}
		}
		for(int i = 0; i < m; i++) {
			int sum = 0;
			for(int j = 0; j < n; j++) {
				sum += mat[j][i];	
			}
			if(-sum > sum) {
				checker = true;	
			}
		}	
	}
	for(int i = 0; i < n; i++) {
		int sum = 0;
		for(int j = 0; j < m; j++) {
			sum += mat[i][j];	
		}
		if(-sum > sum) {
			for(int j = 0; j < m; j++) {
				mat[i][j] = -mat[i][j];
			}
		}
	}
	for(int i = 0; i < m; i++) {
		int sum = 0;
		for(int j = 0; j < n; j++) {
			sum += mat[j][i];	
		}
		if(-sum > sum) {
			for(int j = 0; j < n; j++) {
				mat[j][i] = -mat[j][i];
			}
		}
	}
	cout << endl;
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			fsum += mat[i][j];
		}
	}
	output << fsum;
	input.close();
	output.close();
	
	return 0;
}