Cod sursa(job #23567)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 1 martie 2007 01:07:09
Problema Jocul Flip Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
long int a[17][17],nl,nc,i,j,sm,aux,codl[100],codc[100],nl2,nc2,sc,jl,il,p;
int gencodl()
{       p=1;
	while(codl[p]==-1){codl[p]=1;p++;}
	codl[p]=-1;
	return 0;
}
int gencodc()
{       p=1;
	while(codc[p]==-1){codc[p]=1;p++;}
	codc[p]=-1;
	return 0;
}
int main()
{
	FILE *f;
	f=fopen("flip.in","r");
	fscanf(f,"%ld%ld",&nl,&nc);
	for(i=1;i<=nl;i++)
	for(j=1;j<=nc;j++)
	{fscanf(f,"%ld",&a[i][j]);sm+=a[i][j];}
	fclose(f);
	nl2=1;nc2=1;
	for(i=1;i<=nl;i++){codl[i]=1;nl2*=2;}
	for(j=1;j<=nc;j++){codc[j]=1;nc2*=2;}
	nl2/=2;
	for(il=0;il<nl2;il++)
	{       gencodl();
		for(j=1;j<=nc;j++)codc[j]=1;
		for(jl=0;jl<nc2;jl++)
		{gencodc();sc=0;
		 for(i=1;i<=nl;i++)
		 for(j=1;j<=nc;j++)
		 sc+=codl[i]*codc[j]*a[i][j];
		 if(sc<0)sc=-sc;
		 if(sc>sm)sm=sc;
		}
	}
	f=fopen("flip.out","w");
	fprintf(f,"%ld\n",sm);
	fclose(f);
	return 0;
}