Pagini recente » Cod sursa (job #1440795) | Cod sursa (job #1400761) | Cod sursa (job #2504765) | Cod sursa (job #74713) | Cod sursa (job #916711)
Cod sursa(job #916711)
// Include
#include <fstream>
using namespace std;
// Definitii
#define type_generator pair<int, int>
#define power first
#define cost second
// Constante
const int sz = 1001;
const int powerSZ = 5001;
// Variabile
ifstream in("energii.in");
ofstream out("energii.out");
int num, needPower;
int best[sz][powerSZ];
type_generator generator[sz];
// Main
int main()
{
in >> num >> needPower;
for(int i=1 ; i<=num ; ++i)
in >> generator[i].power >> generator[i].cost;
best[num][needPower] = -1;
for(int i=1 ; i<=num ; ++i)
{
for(int j=0 ; j<=needPower ; ++j)
{
if(j <= generator[i].power)
{
if(best[i-1][j])
best[i][j] = min(best[i-1][j], generator[i].cost);
else
best[i][j] = generator[i].cost;
}
else
{
if(best[i-1][j])
best[i][j] = min(best[i-1][j], best[i-1][j-generator[i].power] + generator[i].cost);
else
if(best[i-1][j-generator[i].power])
best[i][j] = best[i-1][j-generator[i].power] + generator[i].cost;
}
}
}
out << best[num][needPower] << '\n';
in.close();
out.close();
return 0;
}