Pagini recente » Cod sursa (job #554276) | Cod sursa (job #2524348) | Cod sursa (job #674735) | Cod sursa (job #1571995) | Cod sursa (job #2048991)
#include <iostream>
#include <fstream>
#define IN 2000000000
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int cost[5001],energie[5001];
int dp[10005];
int nrg,needed,etotal,indicator;
int main()
{ fin>>nrg>>needed;
for(int i=1;i<=nrg;i++)
{
fin>>energie[i]>>cost[i];
etotal+=energie[i];
}
if(etotal<needed)
{
fout<<-1;
return 0;
}
for(int i=1;i<=10001;i++)dp[i]=IN;
for(int i=1;i<=needed;i++)
{
for(int j=needed;j>=energie[i];j--)
{
dp[j]=min(dp[j-energie[i]]+cost[i],dp[j]);
}
for(int t=energie[i];t>=1;t--)
{
dp[t]=min(dp[t],cost[i]);
}
;
}
fout<<dp[needed];
return 0;
}