Pagini recente » Cod sursa (job #1221425) | Cod sursa (job #267178) | Cod sursa (job #226473) | Cod sursa (job #2717919) | Cod sursa (job #1026765)
#include <stdio.h>
#define fr(i,a,b) for(int i=a;i<b;++i)
#define rf(i,a,b) for(int i=b-1;i>=a;--i)
#define min(a,b) (a<b)?a:b
#define G 1000
#define W 5000
int e[G],c[G];
int v[W];
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int g,w,sol=-1;
scanf("%i%i",&g,&w);
fr(i,0,g)scanf("%i%i",e+i,c+i);
fr(i,1,w) v[i]=-1;
fr(i,0,g){
rf(j,0,w){
if(!j||v[j]!=-1){
if(j+e[i]>=w) sol=(sol==-1)?v[j]+c[i]:min(sol,v[j]+c[i]);
else v[j+e[i]]=(v[j+e[i]]==-1)?v[j]+c[i]:min(v[j+e[i]],v[j]+c[i]);
}
}
}
printf("%i",sol);
return 0;
}