Pagini recente » Cod sursa (job #1136294) | Cod sursa (job #364782) | Cod sursa (job #2871254) | Cod sursa (job #3031059) | Cod sursa (job #3203904)
#include <fstream>
using namespace std;
int n,m,dp[5001],e[1001],cost[1001];
ifstream fin("energii.in");
ofstream fout("energii.out");
int main(){
fin>>n;
fin>>m;
for(int i=1;i<=n;i++){
fin>>e[i]>>cost[i];
}
/// dp[i] = costul minim pentru a ajunge la energia i
dp[0]=0;
for(int i =1;i<=m;i++)
dp[i]=1000000000;
for(int i=1;i<=n;i++){
for(int j=m-1;j>=0;j--){
if(dp[j]!=1000000000){
int aux = min(m,j+e[i]);
dp[aux]=min(dp[aux],dp[j]+cost[i]);
}
}
}
if(dp[m]!=1000000000)
fout<<dp[m];
else
fout<<-1;
return 0;
}