Pagini recente » Cod sursa (job #599689) | Cod sursa (job #1132739) | Cod sursa (job #2805739) | Cod sursa (job #1052075) | Cod sursa (job #2468962)
#include <iostream>
#include <fstream>
using namespace std;
int l[1000], profit[5000], p[1000];
int main()
{
int n, w, minn = 9999999, s = 0;
cin >> n >> w;
for (int i = 1; i <= n; i++)
{
cin >> l[i] >> p[i];
s += l[i];
}
if (s < w)
cout << "-1";
else
{
int k;
for (int j = 1; j <= w; j++)
profit[j] = minn;
for (int i = 1; i <= n; i++)
for (int j = w-1; j >= 0; j--)
{
if (profit[j] != minn)
{
if (j+l[i] >= w)
k = w;
else
k = j + l[i];
if (profit[j] + p[i] < profit[k])
profit[k] = profit[j] + p[i];
}
}
cout << profit[w];
}
return 0;
}