Cod sursa(job #904918)

Utilizator classiusCobuz Andrei classius Data 4 martie 2013 23:40:04
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include "stdafx.h"
#include <fstream>
#include <cstring>
#include <ctime>

using namespace std;
ifstream f("date.in");
ofstream g("date.out");

int a[17][17],b[17][17],x[17],i,j,s,n,m,ma;

void btr(short k);
void schimb(short k);
void coloane();
int sum();

int main()
{
	f>>n>>m;
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			f>>a[i][j];
			b[i][j]=a[i][j];
		}
	}
	
	btr(1);
	g<<ma;
}

void btr(short k)
{
	for(short o=x[k-1]+1;o<=n;o++)
	{
		memcpy(a,b,sizeof(b));
		x[k]=o;
		schimb(k);
		coloane();
		if(sum()>ma) ma=sum();
		if(k<n) btr(k+1);
	}
}

void schimb(short k)
{
	for(i=1;i<=k;i++) for(j=1;j<=m;j++) a[x[i]][j]*=-1;
}

void coloane()
{
	for(j=1;j<=m;j++)
	{
		s=0;
		for(i=1;i<=n;i++) s+=a[i][j];
		if(s<0) for(i=1;i<=n;i++) a[i][j]*=-1;
	}
}

int sum()
{
	s=0;
	for(i=1;i<=n;i++) for(j=1;j<=m;j++) s+=a[i][j];
	return s;
}