Pagini recente » Cod sursa (job #2775903) | Cod sursa (job #1612457) | Cod sursa (job #2478234) | Cod sursa (job #230920) | Cod sursa (job #2536400)
#include <fstream>
std::ifstream f("energii.in");
std::ofstream g("energii.out");
const int NMAX = 50'0000;
const int INF = (1LL << 31) - 1;
int G,W,dp[NMAX + 5];
std::pair<int,int>v[NMAX + 5];
int main(){
f >> G >> W;
for(int i = 1;i <= G;++i)
f >> v[i].first >> v[i].second;
for(int i = 1;i <= NMAX;++i)
dp[i] = INF;
for(int i = 1;i <= G;++i){
for(int j = W; j >= 0;--j)
if(dp[j] != INF){
int k = j + v[i].first;
if(k > W)
k = W;
dp[k] = std::min(dp[k],dp[j] + v[i].second);
}
}
int sol = INF;
for(int i = W;i <= NMAX;++i)
sol = std::min(sol,dp[i]);
g << (sol == INF ? -1 : sol);
return 0;
}