Cod sursa(job #1001076)

Utilizator robert_stefanRobert Stefan robert_stefan Data 24 septembrie 2013 14:05:20
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#define IN "flip.in"
#define OUT "flip.out"

using namespace std;

ifstream in(IN);
ofstream out(OUT);

int a[17][17], n, m, s, sol[17];

inline void back(int k);

inline int max(int a, int b)
{
	if(a>b)
		return a;
	return b;
}

int main()
{
	in>>n>>m;
	int i, j;
	for(i=1; i<=n; ++i)
		for(j=1; j<=m; ++j)
			in>>a[i][j];
	back(1);
	out<<s<<'\n';
	in.close();
	out.close();
	return 0;
}

inline void back(int k)
{
	if(k==n+1)
	{
		int s_tot=0;
		int s_lin;
		for(int i=1; i<=m; ++i)
		{
			s_lin=0;
			for(int j=1; j<=n; ++j)
				s_lin+=sol[j]*a[j][i];
			s_tot+=max(s_lin, -s_lin);
		}
		if(s<s_tot)
			s=s_tot;
	}
	else
	{
		for(int i=-1; i<=1; i+=2)
		{
			sol[k]=i;
			back(k+1);
		}
	}
}