Pagini recente » Cod sursa (job #3228336) | Cod sursa (job #700113) | Cod sursa (job #317462) | Cod sursa (job #1219454) | Cod sursa (job #458011)
Cod sursa(job #458011)
#include <stdio.h>
#define FOR(i,a,b) for(i=a;i<=b;++i)
#define MAXN 1010
#define MAXK 5010
#define INF 0xFFFFFF
int n,k,i,j;
int c[MAXN],e[MAXN];
int dp[MAXK];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
scanf("%d\n",&n);
scanf("%d\n",&k);
FOR (i,1,n)
scanf("%d %d\n",&e[i],&c[i]);
FOR (i,1,k) dp[i] = INF;
FOR (i,1,n)
{
for (j = k;j >= e[i];--j)
if (dp[j] > dp[j-e[i]]+c[i]) dp[j] = dp[j-e[i]]+c[i];
FOR (j,1,e[i]-1)
if (dp[j] > c[i]) dp[j] = c[i];
}
if (dp[k] < INF) printf("%d\n",dp[k]);
else printf("-1\n");
return 0;
}