Pagini recente » Cod sursa (job #2533917) | Cod sursa (job #3151395) | Cod sursa (job #3133826) | Cod sursa (job #1143421) | Cod sursa (job #2700294)
#include <fstream>
#include <cstdio>
using namespace std;
ifstream cin ( "energii.in" );
ofstream cout ( "energii.out" );
#define MAXG 1000
#define MAXW 5000
#define INF 1000000000
int dp[MAXW + 1];
int main()
{
int n, ans, i, j, valoare, cost;
cin >> n >> ans;
for ( i = 1; i <= ans; i++ )
dp[i] = INF;
/// dp[i] = pret min pt energie >= i
for ( i = 0; i < n; i++ ) {
cin >> valoare >> cost;
/// dp[i] = min ( dp[i], dp[i - valoare] + c ) pt ans >= i >= valoare
/// dp[i] = min ( dp[i], c ) pt 0 < i < valoare
for ( j = ans; j >= valoare; j-- )
dp[j] = min ( dp[j], dp[j - valoare] + cost );
for ( j = 0; j < valoare; j++ )
dp[j] = min ( dp[j], cost );
}
if ( dp[ans] != INF )
cout << dp[ans];
else
cout << "-1";
return 0;
}