Pagini recente » Cod sursa (job #1728749) | Cod sursa (job #2692389) | Cod sursa (job #108069) | Cod sursa (job #1334843) | Cod sursa (job #1636643)
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int NMAX=1005;
const int GMAX=5005;
const int inf=(1<<30);
struct Gen{
int en,cost;
};
Gen v[NMAX];
int dp[3][GMAX];
int main()
{
int G,W;
f>>G>>W;
for(int i=1;i<=G;i++)
f>>v[i].en>>v[i].cost;
int lin=1;
for(int i=1;i<=W;i++)
dp[0][i]=dp[1][i]=inf;
for(int i=1;i<=G;i++,lin=1-lin)
{
for(int j=0;j<=W;j++)
{
//dp[lin][j]=dp[1-lin][j];
if(j-v[i].en>=0)
dp[lin][j]=min(dp[1-lin][j],dp[1-lin][j-v[i].en]+v[i].cost);
else
dp[lin][j]=min(dp[lin][j],v[i].cost);
}
}
if(dp[1-lin][G]!=inf)
{
g<<dp[1-lin][G]<<"\n";
return 0;
}
g<<"-1\n";
return 0;
}