Pagini recente » Cod sursa (job #2836404) | Cod sursa (job #2692364) | Cod sursa (job #898979) | Cod sursa (job #1617379) | Cod sursa (job #982571)
Cod sursa(job #982571)
#include <cstdio>
#include <algorithm>
using namespace std;
int A[102][502];
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]);
}
/*
void SubMult()
{
int i, k, n = G, a, g;
for(int i = 1; i <= n, i++)
{
if(A[i][k] < a[i + 1][ k / 2])
k++;
else
g++;
if(k < g)
break;
}
}*/