Pagini recente » Cod sursa (job #1473629) | Cod sursa (job #2713712) | Cod sursa (job #1756588) | Cod sursa (job #740820) | Cod sursa (job #982576)
Cod sursa(job #982576)
#include <cstdio>
#include <algorithm>
#define inf 200000000
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] = inf;
for(int j = 0; j <= G; ++j) A[j][0] = inf;
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] == inf) 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;
}
}*/