Cod sursa(job #492361)

Utilizator cnt_tstcont teste cnt_tst Data 14 octombrie 2010 11:46:47
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.31 kb
#include <fstream>
using namespace std;

int m,n,maxim;
int **v;
bool a[17];

ifstream in("flip.in");
ofstream out("flip.out");

void scout()
{
	int k=0,s,i,j;
	for (i=1;i<=n;i++)
	{
		s=0;
		for (j=1;j<=m;j++)
			if (a[j])
				s+=v[i][j];
			else
				s-=v[i][j];
		if (s>0)
			k+=s;
		else
			k-=s;
	}
	if (k>maxim)
		maxim=k;
}

void bkt(int p)
{
	if (p==m+1)
	{
		scout();
		return;
	}
	a[p]=false;
	bkt(p+1);
	a[p]=true;
	bkt(p+1);
}

int main()
{
	int i,j;
	in>>n>>m;
	
	v = new int*[17];
	for (i=0;i<50;i++)
		v[i] = new int[17];	
	
	
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			in>>v[i][j];
	bkt(1);
	out<<maxim<<"\n";
	return 0;
}



/*

#include <stdio.h>

int **a, **b;

void af(int **a, int n, int m) {
	for (int i=1;i<=n;i++) {
		for (int j=1;j<=m;j++)
			printf("%d ",a[i][j]);
		printf("\n");
	}
	printf("\n");
}

int n, m, i, j;
int main(){
	FILE *f = fopen("in.in","r");
	fscanf(f,"%d %d",&n, &m);
	
	a = new int*[50];
	for (i=0;i<50;i++)
		a[i] = new int[100];
	
	b = new int*[50];
	for (i=0;i<50;i++)
		b[i] = new int[100];
	
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			fscanf(f,"%d",&a[i][j]);
	for (i=1;i<=n;i++)
		for (j=1;j<=m;j++)
			fscanf(f,"%d",&b[i][j]);
	fclose(f);		
	af(a, n, m);
	af(b, n, m);
	
	return 0;
}
*/