Pagini recente » Cod sursa (job #262918) | Cod sursa (job #632564) | Cod sursa (job #1148967) | Cod sursa (job #891390) | Cod sursa (job #1469545)
#include<cstdio>
#define MAX 1000000000
using namespace std;
int N, W, i, j;
int Sol[5010], e[1001], c[1001];
int Minim(int a, int b)
{
return a < b ? a : b;
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d%d", &N, &W);
for (i = 1; i <= N; i++)
scanf("%d %d", &e[i], &c[i]);
for (i = 1; i <= W; i++)
Sol[i] = MAX;
for (i = 1; i <= N; ++i)
for (j = W; j >= 0; --j)
if (Sol[j] != MAX)
{
if (j + e[i] >= W)
Sol[W] = Minim(Sol[W], Sol[j] + c[i]);
else
Sol[j + e[i]] = Minim(Sol[j + e[i]], Sol[j] + c[i]);
}
/*for (i = 1; i <= W; i++)
printf("%d ", Sol[i]);*/
if (Sol[W] == MAX)
printf("-1");
else
printf("%d", Sol[W]);
}