Cod sursa(job #644654)

Utilizator andreea7Bulmeza Victor - Eugen andreea7 Data 7 decembrie 2011 11:22:59
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>

using namespace std;

int N, M, Stiva[33];
long Flip[17][17], S;

void Citire ()
{
	ifstream fin ("flip.in");
	int i, j;
	fin >> N >> M;
	for (i=0; i<N; i++)
	{
		for (j=0; j<M; j++)
		{
			fin >> Flip[i][j];
		}
	}
	fin.close ();
}

void Afisare ()
{
	ofstream fout ("flip.out");
	fout << S << "\n";
	fout.close ();
}

long Max (long a, long b)
{
	if (a>b)
	{
		return a;
	}
	return b;
}

void Baza2 (int n)
{
	int i=0;
	while (n>0)
	{
		Stiva[i++]=n%2;
		n/=2;
	}
	while (i<=32)
	{
		Stiva[i++]=0;
	}
}

int main ()
{
	int n, i, j, ConfiguratieMax;
	long SCurent, Element, SLinie;
	Citire ();
	ConfiguratieMax=1<<M;
	for (n=0; n<=ConfiguratieMax; n++)
	{
		Baza2 (n);
		SCurent=0;
		for (i=0; i<N; i++)
		{
			SLinie=0;
			for (j=0; j<M; j++)
			{
				Element=Flip[i][j];
				if (Stiva[j]==1)
				{
					Element*=(-1);
				}
				SLinie+=Element;
			}
			SCurent+=Max (SLinie, -SLinie);
		}
		if (SCurent>S)
		{
			S=SCurent;
		}
	}
	Afisare ();
	return 0;
}