Pagini recente » Cod sursa (job #2550730) | Cod sursa (job #3259645) | Cod sursa (job #2728235) | Cod sursa (job #1181020) | Cod sursa (job #1778650)
#include <fstream>
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int N, W, E[1001], C[1001], A[5001];
int Min(int x, int y){
return x < y ? x : y;
}
int main(){
f >> N >> W;
for(int i=1; i<=N; ++i) f >> E[i] >> C[i];
for(int i=1; i<=W; ++i) A[i] = INF;
A[0] = 0;
for(int i=1; i<=N; ++i)
for(int j=W; j>=0; --j)
if(j + E[i] >= W)
A[W] = Min(A[W], A[j] + C[i]);
else A[j + E[i]] = Min(A[j + E[i]], A[j] + C[i]);
if(A[W] != INF) g << A[W] << '\n';
else g << -1 << '\n';
}