Pagini recente » Cod sursa (job #1506638) | Cod sursa (job #1147718) | Cod sursa (job #2907231) | Cod sursa (job #301048) | Cod sursa (job #220565)
Cod sursa(job #220565)
#include<stdio.h>
int cost[10005], e[10005], v[10005]={1};
int g, w;
int baga(){
cost[0]=0;
for(int i=1; i<=g; ++i)
{
for(int j=w-1; j ;--j)
if(v[j])
{
if(j+e[i]<w && (v[j]+cost[i]<v[j+e[i]] || v[j+e[i]]==0))
v[j+e[i]]=v[j]+cost[i];
if(j+e[i]>=w && (v[j]+cost[i]<v[w] || v[w]))
v[w]=v[j]+cost[i];
}
if(cost[i]<v[e[i]]||v[e[i]]==0)
v[e[i]]=cost[i];
}
if(v[w]==0)
return -1;
return v[w];
}
int main(){
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d", &g);
scanf("%d", &w);
for(int i=1; i<=g; ++i){
scanf("%d", &e[i]);
scanf("%d", &cost[i]);
}
printf("%d\n",baga());
return 0;
}