Pagini recente » Cod sursa (job #1421472) | Cod sursa (job #2415939) | Cod sursa (job #1276346) | Cod sursa (job #2237442) | Cod sursa (job #2276552)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const long long DM = 5e4 + 5;
long long w,g;
long long dp[DM][DM];
struct centrala
{
long long energie; long long cost;
} gn[DM];
int main()
{
fin >> g >> w;
for(int i = 1; i <= g; i++)
fin >> gn[i].energie >> gn[i].cost;
for(int i = 0; i <= g; i++)
for(int j = 0; j <= w; j++)
dp[i][j] = 9e8;
for(int i = 1; i <= g; i++)
for(int j = 0; j <= w; j++)
{
dp[i][j] = dp[i - 1][j];
if(gn[i].energie >= j) dp[i][j] = min(dp[i][j], gn[i].cost);
else dp[i][j] = min(dp[i][j], (dp[i - 1][j - gn[i].energie] + gn[i].cost));
}
if(dp[g][w] == 9e8) fout << "-1";
else fout << dp[g][w];
fin.close();
fout.close();
return 0;
}