Pagini recente » Borderou de evaluare (job #1050712) | Borderou de evaluare (job #2078755) | Borderou de evaluare (job #2074283) | Borderou de evaluare (job #1531) | Cod sursa (job #3248513)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int Vmax = 10000;
int n, G, ans = Vmax;
struct ob
{
int w, c;
};
vector <int> dp;
vector<ob> v;
int main()
{
cin >> n >> G;
v.resize(n+1);
for(int i=1; i<=n; i++)
cin >> v[i].w >> v[i].c;
dp.assign(Vmax, Vmax);
dp[0] = 0;
for(int i=1; i<=n; i++)
for(int j=Vmax - v[i].w ; j>=0; j--)
if(dp[j + v[i].w] > dp[j] + v[i].c)
dp[j + v[i].w] = dp[j] + v[i].c;
for(int i=G; i<Vmax; i++)
ans = min(dp[i], ans);
cout << ans;
return 0;
}