Pagini recente » Cod sursa (job #1962350) | Cod sursa (job #2583853) | Cod sursa (job #2968174) | Cod sursa (job #1860840) | 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;
}