Pagini recente » Cod sursa (job #2295931) | Cod sursa (job #829445) | Cod sursa (job #1435531) | Cod sursa (job #823396) | Cod sursa (job #2935940)
// https://infoarena.ro/problema/energii
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int main() {
int g, w;
fin>>g>>w;
int sum=0;
vector<int> e(g+1), p(g+1);
for (int i=1; i<=g; ++i) {
fin>>e[i]>>p[i];
sum += e[i];
}
vector<int> dp(sum+1, INT_MAX);
dp[0] = 0;
for (int i=1; i<=g; ++i) {
for (int j=sum; j>=e[i]; --j) {
if (dp[j-e[i]] != INT_MAX) dp[j] = min(dp[j], p[i]+dp[j-e[i]]);
}
}
int ans=INT_MAX;
for (int i=w; i<=sum; ++i) ans = min(ans, dp[i]);
if (ans==INT_MAX) ans = -1;
fout<<ans;
}