Pagini recente » Cod sursa (job #1144229) | Cod sursa (job #2473285) | Cod sursa (job #1638759) | Cod sursa (job #1955829) | Cod sursa (job #403978)
Cod sursa(job #403978)
#include <cstdio>
const int none=5000000;
int g,w,e[1001],c[1001],v[5001];
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d %d",&g,&w);
for(int i=1;i<=w;i++){
v[i]=none;
}
for(int i=0;i<g;i++){
scanf("%d %d",&e[i],&c[i]);
}
for(int i=0;i<g;i++){
for(int j=w;j>0;j--){
if(v[j]!=none){
if(j+e[i]>=w){
if(v[j]+c[i]<v[w]){
v[w]=v[j]+c[i];
}
}
}else if(v[j+e[i]]>v[j]+c[i]){
v[j+e[i]]=v[j]+c[i];
}
}
if(e[i]>=w){
if(c[i]<v[w]){
v[w]=c[i];
}else if(v[e[i]]>c[i]){
v[e[i]]=c[i];
}
}
}
printf("%d",(v[w]==none)?-1:v[w]);
fclose(stdin);
fclose(stdout);
return 0;
}