Cod sursa(job #443959)

Utilizator alexandrunAlexandru Nae alexandrun Data 18 aprilie 2010 23:42:11
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 0.69 kb
#include<stdio.h>
#define N 200
int main()
{
	FILE *f,*g;
	f=fopen("gutui.in","r");
	g=fopen("gutui.out","w");
	int n,i,j,s,k,h,u,he[N],c[N],hmax[N],uz[N][N];
	fscanf(f,"%d%d%d",&n,&h,&u);
	for(i=1;i<=n;i++)
		fscanf(f,"%d%d",&he[i],&c[i]);
	for(i=1;i<=h;i++)
		hmax[i]=-1;
	for(i=0;i<=h;i++)
		for(j=0;j<=h;j++)
			uz[i][j]=0;
	for(s=1;s<=h;s++)
		for(i=1;i<=n;i++)
			if(he[i]<=s && hmax[s-he[i]]!=-1 && !uz[s-he[i]][i])
				if(hmax[s]<c[i]+hmax[s-he[i]])
				{
					hmax[s]=c[i]+hmax[s-he[i]];
					for(j=1;j<=n;j++)
						he[j]+=u;
					for(k=1;k<=n;k++)
						uz[s][k]=uz[s-he[i]][k];
					uz[s][i]=1;
				}
	/*for(i=1;i<h;i++)
		fprintf(g,"%d ",hmax[i]);*/
	fprintf(g,"%d\n",hmax[h]);
	return 0;
}