Pagini recente » Cod sursa (job #1811534) | Cod sursa (job #1753625) | Cod sursa (job #2450689) | Cod sursa (job #3256282) | Cod sursa (job #2205039)
#include <fstream>
#include <algorithm>
using namespace std;
int const NM = 15007;
char const in [] = "energii.in";
char const out [] = "energii.out";
ifstream cin (in);
ofstream cout (out);
int dp [NM] , sol = (1 << 30);
int main()
{
int n , i , j , a , b , k , from = 0;
cin >> n >> k;
for(i = 1 ; i <= n ; ++ i)
{
cin >> a >> b;
for(j = from ; j >= 1 ; -- j)
if(dp [j])
dp [j + a] = min (dp [j + a] , dp [j] + b);
from = min (k , from + b);
if(! dp [a])
dp [a] = b;
else
dp [a] = min (dp [a] , b);
}
for(i = k ; i <= NM ; ++ i)
if(dp [i])
sol = min (sol , dp [i]);
cout << sol << '\n';
return 0;
}