Pagini recente » Cod sursa (job #821121) | Cod sursa (job #2666861) | Cod sursa (job #1098179) | Cod sursa (job #581262) | Cod sursa (job #3273071)
#include <fstream>
#include <vector>
#include <map>
#include <iomanip>
#include <cmath>
#include <algorithm>
#include <set>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
#define ll long long
#define pb(x) push_back(x)
#define all(x) x.begin(), x.end()
int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
ll g;
cin>>g;
ll w;
cin>>w;
ll e, c;
ll dp[10001];
for(int i = 1; i <= 10000; i++)
dp[i] = 1e15;
dp[0] = 0;
for(int i = 1; i <= g; i++)
{
cin>>e>>c;
if(e <= w)
{
for(int j = w - e; j <= 10000; j++)
if(dp[j] != 1e15)
dp[w] = min(dp[w], dp[j] + c);
}
else
{
dp[w] = min(dp[w], c);
}
for(int j = e; j < w; j++)
if(dp[j - e] != 1e15)
dp[j] = min(dp[j], dp[j - e] + c);
}
if(dp[w] != 1e15)
cout<<dp[w];
else
cout<<"-1";
return 0;
}