Cod sursa(job #789506)

Utilizator DeepGreenBurcea Iulian-Catalin DeepGreen Data 18 septembrie 2012 15:53:27
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include<iostream>
#include<fstream>
using namespace std;
#define max 20

ifstream f("flip.in");
ofstream g("flip.out");
void citire( int& n, int& m, long int mat[max][max]){
	f>>n>>m;
	for (int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			f>>mat[i][j];
}

void comutare(int n, int m,long int mat[max][max]){
	long int suma,sumaminus;
	for(int k=0;k<256;k++){
		for(int i=0;i<n;i++){
			suma=sumaminus=0;
			for(int j=0;j<m;j++){
				suma+=mat[i][j];
				sumaminus=sumaminus-mat[i][j];
			}
			if(sumaminus>suma)
				for(int j=0;j<m;j++)
					mat[i][j]=-mat[i][j];
		}
		for(int i=0;i<m;i++){
			suma=sumaminus=0;
			for(int j=0;j<n;j++){
				suma+=mat[j][i];
				sumaminus=sumaminus-mat[j][i];
			}
			if(sumaminus>suma)
				for(int j=0;j<n;j++)
				mat[j][i]=-mat[j][i];
			
		}
	}
}

long int suma(int n, int m,long int mat[max][max]){
	long int suma=0;
	for (int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			suma+=mat[i][j];
	return suma;
}

int main(){
	 int n,m;
	 long int mat[max][max];
	 citire(n,m,mat);
	 comutare(n,m,mat);
	 g<<suma(n,m,mat);
	 return  0;

}