Pagini recente » Cod sursa (job #2500544) | Cod sursa (job #2348744) | Cod sursa (job #561017) | Cod sursa (job #1599239) | Cod sursa (job #1554877)
#include <cstdio>
using namespace std;
int cant[10000005], eng[1002], pret[1002];
int main()
{
int i, j, g, w, min, max;
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d%d", &g, &w);
for(i=0; i<g; i++)
scanf("%d%d", &eng[i], &pret[i]);
cant[0]=1;
max=0;
min=100000000;
for(i=0; i<g; i++){
for(j=max; j>=0; j--){
if(cant[j] && (cant[j+eng[i]]>pret[i]+cant[j] || cant[j+eng[i]]==0)){
cant[j+eng[i]]=pret[i]+cant[j];
if(max<j+eng[i]) max=j+eng[i];
if(j+eng[i]>=w && cant[j+eng[i]]<min) min=cant[j+eng[i]];
}
}
}
if(min!=100000000)
printf("%d", min-1);
else printf("-1");
return 0;
}