Pagini recente » Cod sursa (job #1409231) | Cod sursa (job #1627403) | Cod sursa (job #3037633) | Cod sursa (job #2324137) | Cod sursa (job #301804)
Cod sursa(job #301804)
#include<stdio.h>
#include<string.h>
#define G 1002
#define W 5002
long a[W],b[W],eg[G],cg[G],n,k,i,j,w;
long min(long a,long b)
{
if (a<b) return a;
else return b;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%ld %ld",&n,&k);
for(i=1;i<=n;i++)
scanf("%ld %ld",&eg[i],&cg[i]);
for (j=1;j<=k;j++)
if (eg[1]>=j)
a[j]=cg[1];
else
a[j]=2000000000;
for(i=2;i<=n;i++)
{
for(j=1;j<=k;j++)
{
if (eg[i]>=j) b[j]=cg[i];
else
b[j]=2000000000;
if (j-eg[i]>0)
b[j]=min(a[j-eg[i]]+cg[i],a[j]);
else
b[j]=min(b[j],a[j]);
}
memcpy(a,b,sizeof(b));
}
if (b[k]==2000000000)
printf("%ld\n",-1);
else
printf("%ld\n",b[k]);
return 0;
}