Pagini recente » Cod sursa (job #3226678) | Cod sursa (job #347510) | Cod sursa (job #2345357) | Cod sursa (job #2670452) | Cod sursa (job #2615810)
#include <fstream>
#define lim 5000
#define INF 1e9
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
int dp[lim+5],n,W,p,g;
int main()
{
in>>n>>W;
for(int i=0; i<=W; i++) dp[i]=INF;
for(int i=1; i<=n; i++)
{
in>>p>>g;
for(int j=W-1; j>=1; j--)
{
if(p+j >= W)
{
if(g + dp[j] <= dp[W])
dp[W] = g+dp[j];
}
else if(g + dp[j] <= dp[j+p])
dp[j+p] = dp[j] + g;
}
if(g < dp[p]) dp[p] = g;
}
if(dp[W] != INF) out<<dp[W];
else out<<-1;
return 0;
}