Pagini recente » Cod sursa (job #265083) | Cod sursa (job #1711681) | Cod sursa (job #2673681) | Cod sursa (job #1853411) | Cod sursa (job #3230132)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int dp[20010], i, j, n, w;
pair<int, int> a;
int s;
int main()
{
in >> n >> w;
for (i = 0; i < 20001; i++)
dp[i] =10001000;
for (i = 1; i <= n; i++)
{
in >> a.first >> a.second;
if (a.first == 0)
continue;
for (j = w; j >= 1; j--)
{
if (dp[j] == 10001000)
continue;
dp[j+a.first] = min(dp[j+a.first], dp[j] + a.second);
}
dp[a.first] = min(dp[a.first], a.second);
}
i--;
int ans = 10001000;
for (j = w; j <= w * 2; j++)
ans = min(ans, dp[j]);
if (ans == 10001000)
out << -1;
else
out << ans;
return 0;
}