Pagini recente » Cod sursa (job #1891007) | Cod sursa (job #2170735) | Cod sursa (job #759220) | Cod sursa (job #196838) | Cod sursa (job #2143138)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("energii.in");
ofstream out ("energii.out");
#define MIN(a , b) ((a < b) ? a : b)
int const nmax = 5001;
int const inf = 1000000000;
int dp[5 + nmax];
int main()
{
int n , k;
in>>n>>k;
for(int i = 1 ; i <= nmax ;i++)
dp[i] = inf;
dp[0] = 0;
for(int i = 1 ; i <= n ;i++){
int a , b;
in>>a>>b;
for(int j = k; 0 <= j ;j--){
dp[MIN(j + a , k)] = MIN(dp[MIN(j + a , k)] , dp[j] + b);
}
}
if(dp[k] == inf)
out<<-1;
else
out<<dp[k];
return 0;
}