Cod sursa(job #80135)

Utilizator valkyriaValkyria Dark valkyria Data 26 august 2007 13:37:08
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
	ifstream f;
	f.open("flip.in");
	int mx[16][16];
	int m,n;
	f>>m;
	f>>n;
	int smax=0;
	for (int i=0; i<m; i++)
	{
		for (int j=0; j<n; j++)
		{ 
		f>>mx[i][j];
		smax += mx[i][j];
		}
	}
	int s, im, jm, si, sj, c=0;
	while (c<2)
	{
		c++;
		si=36000;
		for (int i=0; i<m; i++)
		{
			s=0;
			for (int j=0; j<n; j++)
			{ 
				s+=mx[i][j];
			 }
			if (s<si)
			{ 
				si=s;
				im=i;
			}
		}	
		sj=36000;
		for (int j=0; j<n; j++)
		{	
			s=0;
			for (int i=0; i<m; i++)
			{ 
				s+=mx[i][j];
			 }
			if (s<sj)
			{ 
				sj=s;
				jm=j;
			}
		}
		if (si<sj) 
		{
			if (si<0)
			{
			s=smax;
			for (int j=0; j<n; j++)
				{ 
					mx[im][j]*=-1;
					s+=2*mx[im][j];
				
			 	}
			
			if (s>smax)
			{
				smax=s;
				c=0;
			}
			}
			else c=3;
		}
		else
		{
			if (sj<0)
			{
			s=smax;
			for (int i=0; i<m; i++)
			{	
				mx[i][jm]*=-1;
				s+=2*mx[i][jm];
			 }
			if (s>smax)
			{
				smax=s;
				c=0;
			}
			}
			else c=3;
		}		
	}
	ofstream g;
	g.open("flip.out");
	g<<smax;
	g.close();
	return 0;
}