Pagini recente » Cod sursa (job #2156204) | Cod sursa (job #1518395) | Cod sursa (job #2627251) | Cod sursa (job #826989) | Cod sursa (job #1142407)
#include <fstream>
using namespace std;
ifstream in("energii.in");
ofstream out("energii.out");
const int MMAX = (1<<26);
int G, w, energ[1005], c[1005], cost[1005][5005];
int main()
{
int player_unu=0;
in >> G >> w;
for(int i = 1; i <= G; i++)
{
in >> energ[i] >> c[i];
}
for(int j = 0; j <= w; j++)
cost[0][j] = (1<<30);
for(int i = 0; i <= G; i++)
cost[i][0] = (1<<30);
for(int i = 1; i <= G; i++)
{
for(int j = 1; j <= w; j++)
{
if(j > energ[i])
{
cost[i][j] = min(cost[i - 1][j], cost[i - 1][j - energ[i]] + c[i]);
}
else
{
cost[i][j] = min(cost[i - 1][j], c[i]);
}
}
}
if(cost[G][w] != (1 << 30))
{
out<<cost[G][w]<<'\n';
}
else
{
out<<-1<<'\n';
}
return player_unu;
}