Pagini recente » Cod sursa (job #2714074) | Cod sursa (job #2664671) | Cod sursa (job #70650) | Cod sursa (job #1547357) | Cod sursa (job #2223690)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[5005],e[1005],c[1005];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int g,w,i,last=0,j;
scanf("%d%d",&g,&w);
for(i=1;i<=g;i++)
scanf("%d%d",&e[i],&c[i]);
for(i=1;i<=w;i++)
d[i]=-1;
for(i=1;i<=g;i++)
{
for(j=last;j>=0;j--)
{
if(d[j]!=-1)
{
if(j+e[i]<w)
{
if(d[j+e[i]]!=-1)
d[j+e[i]]=min(d[j+e[i]],d[j]+c[i]);
else
d[j+e[i]]=d[j]+c[i];
if(j+e[i]>last)
last=j+e[i];
}
else
{
if(d[w]!=-1)
d[w]=min(d[w],d[j]+c[i]);
else
d[w]=d[j]+c[i];
last=w;
}
}
}
}
printf("%d",d[w]);
return 0;
}