Pagini recente » Cod sursa (job #2183738) | Cod sursa (job #1860245) | Cod sursa (job #2934599) | Cod sursa (job #2740001) | Cod sursa (job #1335522)
#include<cstdio>
using namespace std;
int i, cost[10002], vmax, prod[10002], a[10002], n, eg, costmn, j;
bool ok[10002];
int max(int a, int b){if (a>=b) return a; else return b;}
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, &eg);
for (i=1;i<=n;i++) scanf("%d%d", &prod[i], &cost[i]);
vmax=0; ok[0]=true; a[0]=0; costmn=999999999;
for (i=1;i<=n;i++) for (j=vmax;j>=0;j--)
if (ok[j]==true) {
if (j+prod[i]>=eg) {if (costmn>j+cost[i]) costmn=j+cost[i];} else {
ok[j+prod[i]]=true;
if (vmax<j+prod[i]) vmax=min(j+prod[i], eg);
a[j+prod[i]]=min(a[j]+cost[i], a[j+prod[i]]);
}
}
printf("%d\n", costmn);
return 0;
}