Cod sursa(job #444256)

Utilizator alexandrunAlexandru Nae alexandrun Data 19 aprilie 2010 20:55:37
Problema Gutui Scor 0
Compilator c Status done
Runda teme_upb Marime 0.7 kb
#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE *f,*g;
	f=fopen("gutui.in","r");
	g=fopen("gutui.out","w");
	int n,i,j,s,k,h,u,*he,*c,*hmax,uz[1001][1001];
	fscanf(f,"%d%d%d",&n,&h,&u);
	he=(int*)malloc((n+1)*sizeof(int));
	c=(int*)malloc((n+1)*sizeof(int));
	hmax=(int*)malloc((h+1)*sizeof(int));
	for(i=1;i<=n;i++)
		fscanf(f,"%d%d",&he[i],&c[i]);
	for(i=1;i<=h;i++)
		hmax[i]=-1;
	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;
				}
	fprintf(g,"%d\n",hmax[h]);
	return 0;
}