Cod sursa(job #2045648)

Utilizator HoriaDruliacHoria Druliac HoriaDruliac Data 22 octombrie 2017 17:47:36
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
using namespace std;
ifstream fi("flip.in");
ofstream fo("flip.out");
int N,M,A[20][20],B[20][20];
int rez;
int S[20];
int SC[20];
void g(int k)
{
	int i,s;
	if (k==N)
	{
		/// se obtine matricea B
		for (int i=1;i<=N;i++)
			for (int j=1;j<=M;j++)
				if (S[i]==0)
					B[i][j]=A[i][j];
				else
					B[i][j]=-A[i][j];
		s=0;
		for (int i=1;i<=M;i++)
			SC[i]=0;
		for (int i=1;i<=N;i++)
			for (int j=1;j<=M;j++)
				SC[j]+=B[i][j];
		for (int i=1;i<=M;i++)
			if (SC[i]>=0)
				s+=SC[i];
			else
				s-=SC[i];
		if (s>rez)
			rez=s;
	}
	else
		for (i=0;i<=1;i++)
		{
			S[k+1]=i;
			g(k+1);
		}
}

int main()
{
	fi>>N>>M;
	for (int i=1;i<=N;i++)
		for (int j=1;j<=M;j++)
			fi>>A[i][j];
	rez=-1;
	g(0);
	fo<<rez;
	fi.close();
	fo.close();
	return 0;
}