Pagini recente » Cod sursa (job #902786) | Cod sursa (job #2707148) | Cod sursa (job #1767839) | Cod sursa (job #1360027) | Cod sursa (job #2125268)
#include <fstream>
#define oo 0x7fffffff
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int dp[10001], n, G;
int g[1001], p[5001];
int dinamica()
{
int mx = 0;
for (int i = 1; i < 10001; i++)
dp[i] = oo;
for (int i = 1; i <= n; i++)
{
for (int j = G; j >= 0; j--)
{
if (dp[j] != oo)
{
dp[j + g[i]] = min(dp[j + g[i]], dp[j] + p[i]);
mx = max(mx, j + g[i]);
}
}
}
if (mx < G)
return -1;
int mn = oo;
for (int i = G; i <= mx; i++)
mn = min(mn, dp[i]);
return mn;
}
int main()
{
fin >> n >> G;
for (int i = 1; i <= n; i++)
fin >> g[i] >> p[i];
fout << dinamica();
}