Cod sursa(job #57074)

Utilizator FlorianFlorian Marcu Florian Data 1 mai 2007 09:40:18
Problema Jocul Flip Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
int st[17],n,k,m,a[17][17],s[17],sc[17],smax,totsum=0;
FILE*g=fopen("flip.out","w");
void initializari()
	{
	int i,j;
	FILE*f=fopen("flip.in","r");
	fscanf(f,"%d %d",&n,&m);
	for(i=1;i<=n;i++)
		{
		for(j=1;j<=m;j++)
			{
			fscanf(f,"%d",&a[i][j]);
			totsum+=a[i][j];
			s[i]+=a[i][j];
			sc[j]+=a[i][j];}       }
	}
check(int p)
	{
	int sum,i,j;
	sum=totsum;
	for(i=1;i<=p;i++)
	       {
		sum-=2*sc[st[i]];
		}
	if(sum>smax) smax=sum;
	}
int valid(int p)
	{
	if(p>1&&st[p]<=st[p-1]) return 0;
	else return 1;
	}

void bkt(int p)
	{
	int pval;
	for(pval=1;pval<=m;pval++)
		{
		st[p]=pval;
		if (valid(p))
			{
			if (p==k) check(p);
			else bkt(p+1);
			}
		}
	}
void main()
	{
	initializari();
	 k=1;
	 while(k<=m)
		{
		bkt(1);
		k++;}
		fprintf(g,"%d",smax);
	}