Pagini recente » Cod sursa (job #2824814) | Cod sursa (job #318630) | Cod sursa (job #2018691) | Cod sursa (job #2057206) | Cod sursa (job #1605079)
#include <fstream>
#include <algorithm>
using namespace std;
int main()
{
int nrGeneratoare, energiePornire, energie, cost;
ifstream in("energii.in");
ofstream out("energii.out");
in >> nrGeneratoare >> energiePornire;
int costDP[energiePornire + 1];
fill(costDP, costDP + energiePornire + 1, 10001 );
for( int i = 0; i < nrGeneratoare; ++i )
{
in >> energie >> cost;
for( int j = 0; j <= energiePornire; ++j )
{
if( j <= energie )
{
costDP[j] = min(costDP[j], cost);
}
else
{
costDP[j] = min(costDP[j], costDP[j - energie] + cost);
}
}
}
costDP[energiePornire] == 10001 ? out << -1 : out << costDP[energiePornire];
in.close();
out.close();
return 0;
}