Pagini recente » Cod sursa (job #3145448) | Cod sursa (job #2276841) | Cod sursa (job #415075) | Cod sursa (job #481652) | Cod sursa (job #1427838)
#include <cstdio>
using namespace std;
int v[15004];
int main()
{ freopen("energii.in", "r",stdin);
freopen("energii.out", "w",stdout);
int g,w,x,y,i,dr,min,j;
scanf("%d%d", &g, &w);
for(i=1; i<=15004; i++)
v[i]=-1;
dr=0;
min=2000000000;
for(i=1; i<=g; i++){
scanf("%d%d", &x, &y);
for(j=dr; j>=0; j--)
if(v[j]!=-1){
if(j+x>=w){
if(v[j]+y<min){
min=v[j]+y;
v[j+x]=min;
}
}
else{
if(v[j+x]==-1)
v[j+x]=v[j]+y;
else
if(v[j]+y<v[j+x])
v[j+x]=v[j]+y;
}
}
dr=dr+x;
}
if(min==2000000000)
printf("-1");
else
printf("%d", min);
return 0;
}