Pagini recente » Cod sursa (job #352247) | Cod sursa (job #1537614) | Cod sursa (job #1105302) | Cod sursa (job #385918) | Cod sursa (job #1333040)
#include<stdio.h>
struct lalala{int e,c;};
lalala v[1005];
int s[8000000];
int main(){
int cost=200000000,n,necesar,i,act,j;
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d",&n);
scanf("%d",&necesar);
act=necesar;
for(i=1;i<=n;i++){
scanf("%d%d",&v[i].e,&v[i].c);
for(j=necesar;j>=1;j--)
if(s[j]!=0&&( (s[j+v[i].e]>s[j]+v[i].c) || (s[j+v[i].e]==0) )){
s[j+v[i].e]=s[j]+v[i].c;
if(j+v[i].e>act)
act=j+v[i].e;
if(j+v[i].e>=necesar&&s[j+v[i].e]<cost)
cost=s[j+v[i].e];
}
if(s[v[i].e]==0||s[v[i].e]>v[i].c)
s[v[i].e]=v[i].c;
if(v[i].e>act)
act=v[i].e;
if(v[i].e>=necesar&&s[v[i].e]<cost)
cost=s[v[i].e];
}
if(cost==200000000)
cost=-1;
printf("%d",cost);
return 0;
}