Pagini recente » Cod sursa (job #2309992) | Cod sursa (job #1952816) | Cod sursa (job #1274939) | Cod sursa (job #2940718) | Cod sursa (job #1636634)
#include <fstream>
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
const int NMAX=1005;
const int inf=(1<<30);
struct Gen{
int en,cost;
};
Gen v[NMAX];
int dp[3][5005];
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<=W;i++,lin=1-lin)
{
for(int j=0;j<=G;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[lin][G]!=inf)
{
g<<dp[lin][G]<<"\n";
return 0;
}
g<<"-1\n";
return 0;
}