Pagini recente » Cod sursa (job #2214706) | Cod sursa (job #1820820) | Cod sursa (job #599560) | Cod sursa (job #34597) | Cod sursa (job #1465186)
#include<cstdio>
using namespace std;
int dp[10010][5010];
int minim(int a,int b){
if(a<b)
return a;
return b;
}
int main (){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n,i,j,emin,e,c;
scanf("%d%d",&n,&emin);
for(i=0;i<=n;i++)
for(j=0;j<=emin;j++)
dp[i][j]=2000000000;
for(i=1;i<=n;i++){
scanf("%d%d",&e,&c);
for(j=emin;j>=1;j--){
if(j<=e)
dp[i][j]=minim(dp[i-1][j],c);
else
dp[i][j]=minim(dp[i-1][j],dp[i-1][j-e]+c);
}
}
if(dp[n][emin]==2000000000)
printf("-1");
else
printf("%d",dp[n][emin]);
return 0;
}