Pagini recente » Cod sursa (job #908098) | Cod sursa (job #2541414) | Cod sursa (job #717547) | Cod sursa (job #2759372) | Cod sursa (job #1636663)
#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=0;
for(int i=1;i<=W;i++)
dp[0][i]=inf;
for(int i=1;i<=G;i++,lin=1-lin)
{
for(int j=1;j<=W;j++)
{
dp[1-lin][j]=dp[lin][j];
if(j-v[i].en>=0)
dp[1-lin][j]=min(dp[1-lin][j],dp[lin][j-v[i].en]+v[i].cost);
else
dp[1-lin][j]=min(dp[1-lin][j],v[i].cost);
}
}
if(dp[lin][W]!=inf)
{
g<<dp[lin][W]<<"\n";
return 0;
}
g<<"-1\n";
return 0;
}