Pagini recente » Cod sursa (job #1740425) | Cod sursa (job #2301705) | Cod sursa (job #2940533) | Cod sursa (job #803339) | Cod sursa (job #2849781)
#include <bits/stdc++.h>
#define GMAX 1005
#define WMAX 5005
const int INF = 1e8;
using namespace std;
/*******************************/
// INPUT / OUTPUT
ifstream f("energii.in");
ofstream g("energii.out");
/*******************************/
/// GLOBAL DECLARATIONS
int G, W;
int ans;
int energy[GMAX], cost[GMAX];
int dp[WMAX];
/*******************************/
/// FUNCTIONS
void ReadInput();
void Solution();
void Output();
/*******************************/
///-------------------------------------
inline void ReadInput()
{
f >> G >> W;
for (int i = 1 ; i <= G ; ++ i)
{
f >> energy[i] >> cost[i];
}
}
///-------------------------------------
inline void Solution()
{
for (int i = 1 ; i <= W ; ++ i)
{
dp[i] = INF;
}
dp[0] = 0;
for (int i = 1 ; i <= G ; ++ i)
{
for (int val = W ; val >= 1 ; -- val)
{
if (val <= energy[i])
{
dp[val] = min(dp[val], cost[i]);
}
else
{
dp[val] = min(dp[val], dp[val - energy[i]] + cost[i]);
}
}
}
if (dp[W] != INF) ans = dp[W];
else ans = -1;
}
///-------------------------------------
inline void Output()
{
g << ans;
}
///-------------------------------------
int main()
{
ReadInput();
Solution();
Output();
return 0;
}