Pagini recente » Cod sursa (job #1530270) | Cod sursa (job #2552752) | Cod sursa (job #2135927) | Cod sursa (job #2591701) | Cod sursa (job #1792539)
#include<cstdio>
using namespace std;
int i, n, j, a[5002], sol=999999999, p, c, w;
inline int min(int a, int b){if (a<=b) return a; else return b;}
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d", &n, &w);
for (j=1;j<=n;j++) {
scanf("%d%d", &p, &c);
if (p>=w) {
if (sol>c) sol=c;
continue;
}
for (i=w-1;i>=0;i--) if (a[i]!=0) {
if (i+p>=w) {if (a[i]+c<sol) sol=a[i]+c;}
else if ((a[i]!=0)&&((a[i+p]>a[i]+c)||(a[i+p]==0))) a[i+p]=a[i]+c;
}
if ((a[p]==0)||(a[p]>c)) a[p]=c;
}
if (sol==999999999) printf("-1"); else printf("%d\n", sol);
return 0;
}