Pagini recente » Cod sursa (job #2493265) | Cod sursa (job #2933124) | Cod sursa (job #1883548) | Cod sursa (job #3271645) | Cod sursa (job #2112920)
#include <iostream>
#include <fstream>
#include <cstring>
#define inf 0x3f3f3f
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int nrGeneratoare, energieNecesara;
int dp[10000];
int main()
{
f >> nrGeneratoare >> energieNecesara;
for(int i=1; i<=energieNecesara; i++)
dp[i] = inf;
for(int i=1; i<=nrGeneratoare; i++)
{
int energie, cost;
f >> energie >> cost;
for(int j=energieNecesara-1; j>=0; j--)
{
if(j + energie <= energieNecesara && dp[j + energie] > dp[j] + cost)
dp[j + energie] = dp[j] + cost;
else
if(j + energie > energieNecesara && dp[energieNecesara] > dp[j] + cost)
dp[energieNecesara] = dp[j] + cost;
}
}
if(dp[energieNecesara] == inf) g << "-1"; else g << dp[energieNecesara];
return 0;
}