Pagini recente » Cod sursa (job #2217178) | Cod sursa (job #2935245) | Cod sursa (job #1855855) | Cod sursa (job #637666) | Cod sursa (job #2468965)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int l[1002], profit[5005], p[1001];
int main()
{
int n, w, minn = 9999999, s = 0;
fin >> n >> w;
for (int i = 1; i <= n; i++)
{
fin >> l[i] >> p[i];
s += l[i];
}
if (s < w)
fout << "-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];
}
}
fout << profit[w];
}
return 0;
}