Pagini recente » Cod sursa (job #1434755) | Cod sursa (job #15162) | Cod sursa (job #2874566) | Cod sursa (job #2079952) | Cod sursa (job #3288224)
#include<bits/stdc++.h>
using namespace std;
const int NMAX = 1e3 + 5, GMAX = 2e5 + 5, INF = 1e9 + 7;
int n, k, dp[GMAX], suma;
pair<int, int> v[NMAX];
int32_t main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
cin >> n >> k;
for(int i = 1; i <= n; i++)
{
cin >> v[i].first >> v[i].second;
suma += max(v[i].first, suma);
}
suma *= 2;
for(int i = 1; i <= suma; i++)
dp[i] = INF;
for(int i = 1; i <= n; i++)
{
for(int j = suma; j >= v[i].first; j--)
{
dp[j] = min(dp[j], dp[j - v[i].first] + v[i].second);
}
}
int min1 = INF;
for(int i = suma; i >= k; i--)
{
min1 = min(min1, dp[i]);
}
if(min1 == INF)
cout<< "-1";
else
cout << min1;
}