Pagini recente » Cod sursa (job #1170732) | Cod sursa (job #1855082) | Cod sursa (job #337219) | Cod sursa (job #1328126) | Cod sursa (job #1428310)
#include <fstream>
#include <algorithm>
#define Inf 12345678
#define MaxG 1005
#define MaxW 500000
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 = MaxW - 1; j >= 0; --j) {
if (dp[j] != Inf && j + eg < MaxW && dp[j + eg] > dp[j] + cg) {
dp[j + eg] = 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;
}