Pagini recente » Cod sursa (job #2811544) | Cod sursa (job #672800) | Cod sursa (job #2523970) | Cod sursa (job #101773) | Cod sursa (job #3356205)
#include <fstream>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int dim= 2e4;
const int nmax= 2e9;
int dp[dim+ 5]= {nmax};
pair <int, int> v[dim];
int main()
{
int n, W, i, j;
cin >> n>> W;
for(i= 1;i <= n;i++){
cin >> v[i].first>> v[i].second;
}
dp[0]= 0;
for(i= 1;i <= dim;i++)
dp[i]= nmax;
for(i= 1;i <= n;i++){
for(j= dim;j >= 0;j--){
if(dp[j] < nmax and j+ v[i].first <= dim){
int cost= dp[j]+ v[i].second;
int unde= j+ v[i].first;
if(dp[unde] > cost)
dp[unde]= cost;
}
}
// for(j= 0;j <= W* 5;j++)
// cout << dp[j]<<" "; cout << endl;
}
int mini= nmax;
for(i= W;i <= dim;i++)
mini= min(mini, dp[i]);
if(mini== nmax)cout << -1;
else
cout << mini;
return 0;
}