Cod sursa(job #372028)

Utilizator andreiosxpantherHalalai Tudor Andrei andreiosxpanther Data 8 decembrie 2009 11:40:35
Problema ADN Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<stdio.h>
const int gmax=1001;
int wmax=5001;
int min=30,nim=30;
int w,g[5001],c[5001],n,rez[5001],u[5001],i,j,tot;
int main()
{
FILE *in=fopen("energii.in","r");
FILE *out=fopen("energii.out","w");
fscanf(in,"%d %d",&n,&w);
for(i=1;i<=n;i++)
	fscanf(in,"%d %d",&g[i],&c[i]);
for(i=0;i<=2*w;i++)rez[i]=min;
	rez[0]=0;
	u[0]=1;
for(i=1;i<=n;i++)
for(j=w;j>=0;j--)
{
	if(u[j]&&rez[j]+c[i]<rez[j+g[i]])
	{
		u[j+g[i]]=1;
		rez[j+g[i]]=rez[j]+c[i];
		if(j+g[i]>tot)tot=j+g[i];
	}
}
	for(i=tot;i>=w;i--)
	if(rez[i]<min)min=rez[i];
	if(min==nim)fprintf(out,"-1\n");
	else fprintf(out,"%d\n",min);
	return 0;
}