Cod sursa(job #492411)

Utilizator cristobalubaBalint Cristian cristobaluba Data 14 octombrie 2010 14:50:38
Problema Jocul Flip Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

void coloana(int **v, int i, int m)
{
	int s_neg = 0;
	int s_poz = 0;
	for(int j = 0; j < m; j++)
		if(v[j][i] >= 0)
			s_poz += v[j][i];
		else s_neg += v[j][i]*(-1);
	if(s_neg > s_poz)
		for(int j = 0; j < m; j++)
			v[j][i] *= (-1);
	
}

void linii(int **v,int j, int n)
{
	int s_neg = 0;
	int s_poz = 0;
	for(int i = 0; i < n; i++)
		if(v[j][i] >= 0)
			s_poz += v[j][i];
		else s_neg += v[j][i]*(-1);
	if(s_neg > s_poz)
		for(int i = 0; i < n; i++)
			v[j][i] *= (-1);
}

int main()
{
	ifstream fin("flip.in");
	ofstream fout("flip.out");

	int n, m, max = 0;;
	
	fin>>n>>m;

	int **v;
	
	v = new int*[n];
   	for (int i=0;i<n;i++)
    	v[i] = new int[m]; 
	
	for(int i = 0; i < n; i++)
		for(int j = 0; j < m; j++)
			fin>>v[i][j];
			
			
	for(int i = 0; i < n; i++)
		coloana(v, i, n);
	for(int j = 0; j < m; j++)
		linii(v, j, m);


	for(int i = 0; i < n; i++)
		for(int j = 0; j < m; j++)
			max += v[i][j];

	fout<<max;
	
	fin.close();
	fout.close();
	
	return 0;
	
}