Cod sursa(job #208834)

Utilizator albuaAlbu Alexandru albua Data 19 septembrie 2008 10:38:22
Problema Jocul Flip Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <stdio.h>
#include <values.h>

//using namespace std;

FILE *f,*g;

long a[17][17];
long smax=0-MAXLONG,tsum;
unsigned long v;
unsigned long i,j;
int n,m,t;

long calculeaza_suma(unsigned long k)
{
  int i,j;
	long tsum=0;
	for(i=0;i<n;i++)
	  for(j=n;j<t;j++)
		  if((k>>i)&1!=(k>>j)&1)
		    tsum+=a[i+1][j-n+1] * -1;
		  else
		    tsum+=a[i+1][j-n+1];
  return tsum;
}

int main()
{
  f=fopen("flip.in","r");
	g=fopen("flip.out","w");
	fscanf(f,"%d %d\n",&n,&m);
	//citire
	for(i = 1; i <= n;i++)
	  for(j = 1;j <= m;j++)
		  fscanf(f,"%ld",&a[i][j]);
	t=m+n;
	v=((unsigned long)1<<t)-1;
//	temp==((unsigned long)1<<32)-1;
	for(i=1;(i<=v);i++)
	  {
		  tsum=calculeaza_suma(i);
			if(tsum>smax)
			  smax=tsum;
		}
	fprintf(g,"%ld\n",smax);
	fclose(f);   fclose(g);
  return 0;
}