Pagini recente » Cod sursa (job #709241) | Cod sursa (job #1537597) | Cod sursa (job #336997) | Cod sursa (job #3353253) | Cod sursa (job #3353161)
#include <bits/stdc++.h>
using namespace std;
int dp[5001];
int main() {
ifstream fin("energii.in");
ofstream fout("energii.out");
int G, W;
fin >> G >> W;
vector<int> E(G), C(G);
for (int i = 0; i < G; i++)
fin >> E[i] >> C[i];
const int INF = 1e9;
fill(dp, dp + W + 1, INF);
dp[0] = 0;
for (int i = 0; i < G; i++) {
int ei = E[i], ci = C[i];
for (int e = W; e >= 0; e--) {
if (dp[e] == INF) continue;
int ne = e + ei >= W ? W : e + ei;
int val = dp[e] + ci;
if (val < dp[ne]) dp[ne] = val;
}
}
fout << (dp[W] == INF ? -1 : dp[W]) << "\n";
return 0;
}