Pagini recente » Cod sursa (job #765658) | Cod sursa (job #747212) | Cod sursa (job #3271086) | Cod sursa (job #1634260) | Cod sursa (job #975198)
Cod sursa(job #975198)
#include <cstdio>
#include <algorithm>
using namespace std;
int A[1002][5002];
int main()
{
freopen ("energii.in", "r", stdin);
freopen ("energii.out", "w", stdout);
int G, W;
scanf ("%d %d", &G, &W);
int w[1002], c[1002];
for(int i = 0; i < G; ++i) scanf ("%d %d", &w[i], &c[i]);
for(int i = 0; i <= W; ++i) A[0][i] = 200000000;
for(int j = 0; j <= G; ++j) A[j][0] = 200000000;
for(int e = 1; e < G; ++e)
for(int s = 1; s <= W; ++s)
if(s <= w[e])
A[e][s] = min(c[e], A[e-1][s]);
else
A[e][s] = min(A[e-1][s], c[e] + A[e-1][s-w[e]]);
if(A[G-1][W] == 200000000) printf ("%d", -1);
else printf ("%d", A[G-1][W]);
}