Pagini recente » Cod sursa (job #1639371) | Cod sursa (job #2453123) | Cod sursa (job #730419) | Cod sursa (job #121716) | Cod sursa (job #598883)
Cod sursa(job #598883)
#include <fstream>
#include <cstring>
using namespace std;
#define INF 0x3f3f3f3f
int n, w, cost[50010], gen[1010][3];
int main()
{
int i, j, min = INF;
ifstream f("energii.in");
ofstream g("energii.out");
f >> n >> w;
memset(cost, -1, sizeof(cost));
cost[0] = 0;
for(i = 1; i <= n; ++i)
{
f >> gen[i][1] >> gen[i][2];
for(j = 20000; j >= gen[i][1]; --j)
if(cost[j - gen[i][1]] != -1 && ((cost[j - gen[i][1]] + gen[i][2] < cost[j]) || cost[j] == -1))
{
cost[j] = cost[j - gen[i][1]] + gen[i][2];
}
}
for(i = w; i <= 20000; ++i)
if(cost[i] < min && cost[i] != -1)
min = cost[i];
if(min == INF)
g << -1 << '\n';
else
g << min << '\n';
g.close();
return 0;
}