Pagini recente » Cod sursa (job #719532) | Cod sursa (job #2471853) | Cod sursa (job #2023076) | Cod sursa (job #3124270) | Cod sursa (job #1189266)
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
const int Wmax = 5005;
const int INF = 0x3f3f3f3f;
int dp[Wmax];
int main()
{
ifstream f ("energii.in");
ofstream g ("energii.out");
memset(dp, INF, sizeof(dp));
dp[0] = 0;
int N, W, e, p;
f >> N >> W;
for (int i = 0; i < N; i++)
{
f >> e >> p;
for (int x = W; x >= 0; x--)
if (x - e >= 0 && dp[x] > dp[x-e] + p)
dp[x] = dp[x-e] + p;
else if (x - e < 0 && dp[x] > p)
dp[x] = p;
}
if (dp[W] == INF)
g << -1 << '\n';
else
g << dp[W] << '\n';
return 0;
}