Pagini recente » Cod sursa (job #1240007) | Cod sursa (job #2186176) | Cod sursa (job #2611464) | Cod sursa (job #1759617) | Cod sursa (job #1472029)
#include <cstdio>
#include <algorithm>
#define Dim 1002
#define Inf 2000000001
using namespace std;
int N, E, e[Dim], c[Dim], i, j, v[Dim * 15], sol = Inf;
int maxc;
void read()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
scanf("%d %d", &N, &E);
for(i = 1; i <= N; ++ i)
{
scanf("%d %d", &e[i], &c[i]);
if(c[i] > maxc)
maxc = c[i];
}
for(i = 1; i <= E + maxc; ++ i)
v[i] = Inf;
}
void rucsac()
{
for(i = 1; i <= N; ++ i)
for(j = E + e[i]; j >= e[i]; -- j)
{
v[j] = min(v[j], v[j - e[i]] + c[i]);
if(j >= E)
sol = min(sol, v[j]);
}
}
int write()
{
if(sol == Inf)
printf("-1\n");
else
printf("%d\n", sol);
}
int main()
{
read();
rucsac();
write();
return 0;
}