Pagini recente » Borderou de evaluare (job #3310742) | Cod sursa (job #3308238) | Cod sursa (job #3344341) | Cod sursa (job #3326883) | Cod sursa (job #3308693)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("energii.in");
ofstream fout ("energii.out");
int g, w, smax, emax, mini = 999999;
int gen[2][1001];
int dp[100001];
int main(){
fin >> g >> w;
for (int i = 1; i <= g; i++){
fin >> gen[0][i] >> gen[1][i];
emax = max(emax, gen[0][i]);
}
smax = emax + w;
for (int i = 0; i <= smax; i++){
dp[i] = 999999;
}
dp[0] = 0;
for (int i = 1; i <= g; i++){
for (int j = smax; j >= gen[0][i]; j--){
if (dp[j - gen[0][i]] != 999999){
dp[j] = min(dp[j], dp[j - gen[0][i]] + gen[1][i]);
}
}
}
for (int i = w; i <= smax; i++){
mini = min(mini, dp[i]);
}
fout << mini;
return 0;
}