Pagini recente » Cod sursa (job #3186250) | Cod sursa (job #676413) | Cod sursa (job #1352872) | Cod sursa (job #504641) | Cod sursa (job #240777)
Cod sursa(job #240777)
#include<stdio.h>
const int oo=1000000000;
int g,w,e[1001],c[1001],v[5001];
void init()
{
for(int i=1;i<=w;++i)
v[i]=oo;
}
int main()
{
int i,j;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d",&g,&w);
for(i=1;i<=g;i++)
scanf("%d%d",&e[i],&c[i]);
init();
for(i=1;i<=g;i++)
{
for(j=w;j>0;j--)
if(v[j]!=oo)
{
if(j+e[i]>=w && v[j]+c[i]<v[w])
v[w]=v[j]+c[i];
if(j+e[i]<w && v[j]+c[i]<v[j+e[i]])
v[j+e[i]]=v[j]+c[i];
}
if(e[i]>=w && c[i]<v[w])
v[w]=c[i];
if(e[i]<w && c[i]<v[e[i]])
v[e[i]]=c[i];
}
printf("%d\n",v[w]!=oo ? v[w] : -1);
return 0;
}