Cod sursa(job #64501)

Utilizator c_sebiSebastian Crisan c_sebi Data 3 iunie 2007 18:07:59
Problema Jocul Flip Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <stdio.h>

int a[16][16], nl, nc, v;
long long SMax;

int main()
{
	int i, j;
	long long s, S;
	FILE *f=fopen ("flip.in", "r"), *g=fopen ("flip.out", "w");
	fscanf (f, "%d %d", &nl, &nc);
	for (i=0; i<nl; ++i)
		for (j=0; j<nc; ++j)
			fscanf (f, "%d", &a[i][j]);
	fclose(f);
	SMax=-256000001;
	for (v=0; v<(1<<nc); ++v)
		{
			for (i=0; i<nc; ++i)
		if (v&(1<<i))
			for (j=0; j<nl; ++j)
				a[j][i]*=-1;
	for (S=0, i=0; i<nl; ++i)
		{for (s=0, j=0; j<nc; ++j)
				s+=a[i][j];
		if (s<0) s=-s;
		S+=s;
		}
	for (i=0; i<nc; ++i)
		if (v&(1<<i))
			for (j=0; j<nl; ++j)
				a[j][i]*=-1;
	if (S>SMax) SMax=S;
	}
	fprintf (g, "%lld\n", SMax);
	fclose(g);
	return 0;
}