Pagini recente » Cod sursa (job #717053) | Cod sursa (job #1979028) | Cod sursa (job #331478) | Monitorul de evaluare | Cod sursa (job #3353159)
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("energii.in");
ofstream fout("energii.out");
int G, W;
fin >> G >> W;
vector<int> E(G), C(G);
int totalE = 0;
for (int i = 0; i < G; i++) {
fin >> E[i] >> C[i];
totalE += E[i];
}
const int INF = 1e9;
int maxE = totalE;
vector<int> dp(maxE + 1, INF);
dp[0] = 0;
for (int i = 0; i < G; i++) {
for (int e = maxE; e >= E[i]; e--) {
if (dp[e - E[i]] != INF) {
dp[e] = min(dp[e], dp[e - E[i]] + C[i]);
}
}
}
int ans = INF;
for (int e = W; e <= maxE; e++) {
ans = min(ans, dp[e]);
}
fout << (ans == INF ? -1 : ans) << "\n";
return 0;
}