Pagini recente » Cod sursa (job #2174246) | Cod sursa (job #1888261) | Cod sursa (job #2497069) | Cod sursa (job #276085) | Cod sursa (job #2177675)
#include <cstdio>
using namespace std;
int mmin(int a , int b)
{
return ((a < b) ? a : b);
}
const int nmax = 5001;
const int inf = 1000000000;
int dp[nmax+5];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n, k;
scanf("%d %d",&n,&k);
for(int i = 1 ; i <= nmax ; i++)
dp[i] = inf;
dp[0] = 0;
for(int i = 1 ; i <= n ; i++)
{
int a, b;
scanf("%d %d",&a,&b);
for(int j = k; 0 <= j ; j--)
{
dp[mmin(j + a, k)] = mmin(dp[mmin(j + a, k)], dp[j] + b);
}
}
if(dp[k] == inf)
printf("-1");
else
printf("%d",dp[k]);
return 0;
}