Cod sursa(job #2817049)

Utilizator g.cezar98grdnr cez g.cezar98 Data 12 decembrie 2021 19:02:48
Problema Jocul Flip Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.39 kb
/*#include<iostream>
#include <fstream>
using namespace std;
int main() {
	ifstream f("cmmdc.in"); ofstream g("cmmdc.out"); short int a, b; f >> a >> b; short int r; while (b != 0) { r = a % b; a = b; b = r; }if (a == 1) { a=0; }g << a; return 0;
}*/

#include<iostream>
#include<fstream>
using namespace std;
int main() {
	ifstream f("flip.in");
	ofstream g("flip.out");
	int n, m;
	f >> n >> m;
	int** matrix = new int* [n];
	for (int i = 0; i < n; i++) {
		matrix[i] = new int[m];
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			f >> matrix[i][j];
		}
	}
	//linii
	for (int k = 0; k < (1 << n); k++) {


		for (int i = 0; i < n; i++) {
			int sum = 0;
			int sum_neg = 0;
			for (int j = 0; j < m; j++) {
				sum += matrix[i][j];
				sum_neg -= matrix[i][j];
			}
			if (sum_neg > sum) {
				for (int j = 0; j < m; j++) {
					matrix[i][j] *= (-1);
				}
			}
		}
	}
	//coloane
	for(int k=0;k<(1<<n);k++){
	for (int i = 0; i < m; i++) {
		int sum = 0;
		int sum_neg = 0;
		for (int j = 0; j < n; j++) {
			sum += matrix[j][i];
			sum_neg -= matrix[j][i];
		}
		if (sum_neg > sum) {
			for (int j = 0; j < n; j++) {
				matrix[j][i] *= (-1);
			}
		}
	}


}

	int sum=0;
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < m; j++) {
			sum += matrix[i][j];
			//g << matrix[i][j]<<" ";
		}
		//g << "\n";
	}
	g << sum;
	return 0;
}