Pagini recente » Cod sursa (job #662016) | Cod sursa (job #1739413) | Cod sursa (job #2233481) | Cod sursa (job #752616) | Cod sursa (job #1337286)
#include <cstdio>
#define min(a, b) ( a < b ? a : b)
#define smax 20000
#define NMAX 5001
#define INF 1<<30
using namespace std;
int n, lim, Min;
int e[NMAX], c[NMAX], v[smax+2];
void citire()
{
freopen("energii.in", "r" , stdin);
scanf("%d%d", &n, &lim);
for(int i = 1; i <= n; ++i){
scanf("%d %d",&e[i], &c[i]);
}
for(int i = 1; i <= smax; ++i) v[i]=INF;
}
void solve()
{
for(int i = 1; i <= n; ++i)
for(int j = lim; j >= 0; --j){
v[j + e[i]] = min(v[j + e[i]], v[j] + c[i]);
}
}
void afis()
{
freopen("energii.out", "w" ,stdout);
Min=INF;
for(int i = smax; i >= lim; --i)
if( v[i] < Min) Min=v[i];
if(Min == INF) printf("%d\n",-1);
else printf("%d\n",Min);
}
int main()
{
citire();
solve();
afis();
return 0;
}