Pagini recente » Cod sursa (job #705113) | Cod sursa (job #997261) | Cod sursa (job #1825501) | Cod sursa (job #2811781) | Cod sursa (job #3348904)
#include <bits/stdc++.h>
using namespace std;
#define int long long
struct Energie {
int nr, cost;
};
Energie v[100001];
int dp[10001]; // doar pana la k
signed main()
{
ifstream cin("energii.in");
ofstream cout("energii.out");
int n, k;
cin >> n >> k;
for (int i = 1; i <= n; i++)
cin >> v[i].nr >> v[i].cost;
for (int i = 0; i <= k; i++)
dp[i] = LLONG_MAX;
dp[0] = 0;
for (int i = 1; i <= n; i++)
{
for (int j = k; j >= 0; j--)
{
if (dp[j] != LLONG_MAX)
{
int nxt = min(k, j + v[i].nr);
dp[nxt] = min(dp[nxt], dp[j] + v[i].cost);
}
}
}
if (dp[k] == LLONG_MAX)
cout << -1;
else
cout << dp[k];
return 0;
}