Cod sursa(job #362935)

Utilizator dany123Florea Daniel dany123 Data 11 noiembrie 2009 12:56:05
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include<fstream>
using namespace std;
ifstream fin("flip.in");
ofstream fout("flip.out");

int n,m,a[20][20];

int s_l (int n, int inv) {	//n = nr linie	//suma_linie
	int s=0;
	if (inv==1) inv=-1; else inv=1;
	for (int i=0;i<m;i++) s+=(a[n][i]*inv);
	return s;}

int s_c (int m, int inv) {	//m = nr coloana	//suma_coloana
	int s=0;
	if (inv==1) inv =-1; else inv=1;
	for (int i=0;i<n;i++) s+=(a[i][m]*inv);
	return s;}

void l_inv (int n) {for (int j=0;j<m;j++) a[n][j]*=-1;}
void c_inv (int m) {for (int i=0;i<n;i++) a[i][m]*=-1;}

int main () {
	int i,j,s=0;
	fin>>n>>m;		
	for (i=0;i<n;i++) for (j=0;j<m;j++)	fin>>a[i][j];		//citesc matricea
	
	for (i=0;i<n;i++) if (s_l(i, 0) < s_l(i, 1)) l_inv(i);	//daca suma liniei inversate e mai mare o inversez
	for (j=0;j<m;j++) if (s_c(j, 0) < s_c(j, 1)) c_inv(j);	//    -||- coloanei -||-
	
	for (i=0;i<n;i++) for (j=0;j<m;j++) s+=a[i][j];		//suma matricei finale;
	fout<<s;
	return 0;
}