Cod sursa(job #3187948)

Utilizator EftodeAndreiEftode Andrei EftodeAndrei Data 31 decembrie 2023 15:33:19
Problema Jocul Flip Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<bits/stdc++.h>
using namespace std;
ifstream in("flip.in");
ofstream out("flip.out");
int n, m, dp[17][17], a[17], a1[17], b[17], b1[17];
void solve_m(int k) {
	int s = 0, s1 = 0;
	for (int i = 1; i <= n; i++) {
		if (dp[i][k] >= 0)
			s += dp[i][k]; else
			s1 += dp[i][k];
	}
	a[k] = s;
	a1[k] = s1;
}
void solve_n(int k) {
	int s = 0, s1 = 0;
	for (int i = 1; i <= m; i++) {
		if (dp[k][i] >= 0) s += dp[k][i]; else
			s1 += dp[k][i];
	}
	b[k] = s;
	b1[k] = s1;
}
void suma() {
	long long s = 0;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++) s += dp[i][j];
	out << s;
}
void aut(int k) {
	for (int i = 1; i <= n; i++) dp[i][k] = dp[i][k] * (-1);
}
void tua(int k) {
	for (int i = 1; i <= m; i++) dp[k][i] = dp[k][i] * (-1);
}
int main() {
	in >> n >> m;
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= m; j++) in >> dp[i][j];
	for (int i = 1; i <= m; i++) {
		solve_m(i);
	}
	for (int i = 1; i <= n; i++) {
		solve_n(i);
	}
	long long s = 0;
	for (int i = 1; i <= m; i++) {
		if (abs(a1[i]) > abs(a[i])) {
			aut(i);
		}
	}
	for (int i = 1; i <= n; i++) {
		if (abs(b1[i]) > abs(b[i]))
			tua(i);
	}
	suma();
}