Pagini recente » Cod sursa (job #446442) | Cod sursa (job #483734) | Cod sursa (job #1826196) | Cod sursa (job #2735980) | Cod sursa (job #2276537)
#include <fstream>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
const long long DM = 5e4 + 5;
const long long MI = 9e8;
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] = MI;
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] = 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] == MI) fout << "-1";
else fout << dp[g][w];
fin.close();
fout.close();
return 0;
}