Pagini recente » Borderou de evaluare (job #3366297) | Cod sursa (job #3366985) | Cod sursa (job #3366992) | Cod sursa (job #3366971) | Cod sursa (job #3367253)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n, m;
int energie[10001];
int cost[10001];
int dp[5001];
int main() {
fin>>n>>m;
fill(dp, dp + 5001, INT_MAX);
dp[0] = 0;
for(int i = 1; i <= n; i++)
fin>>energie[i]>>cost[i];
for(int i = 1; i <= n; i++){
for(int j = m-1; j >= 0; j--){
if(dp[j] != INT_MAX){
int k = min(m, energie[i] + j);
dp[k] = min(dp[k], dp[j] + cost[i]);
}
}
}
if(dp[m]==INT_MAX)
fout<< -1;
else
fout<<dp[m];
return 0;
}