Pagini recente » Cod sursa (job #2637412) | Cod sursa (job #943093) | Cod sursa (job #355746) | Cod sursa (job #1592681) | Cod sursa (job #1428312)
#include <fstream>
#include <algorithm>
#define Inf 12345678
#define MaxG 1005
#define MaxW 5005
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int dp[MaxW], G, W, eg, cg;
int min(int a, int b) {
return a < b ? a : b;
}
int main() {
fill(dp, dp + MaxW, Inf);
dp[0] = 0;
fin >> G >> W;
for (int i = 1; i <= G; ++i) {
fin >> eg >> cg;
for (int j = W - 1; j >= 0; --j) {
if (dp[j] != Inf) {
int index = j + eg;
if (index > W)
index = W;
if (dp[index] > dp[j] + cg)
dp[index] = dp[j] + cg;
}
}
}
int minn = Inf;
for (int i = W; i < MaxW; ++i)
minn = min(minn, dp[i]);
if (minn == Inf)
minn = -1;
fout << minn << '\n';
return 0;
}