Pagini recente » Cod sursa (job #461826) | Cod sursa (job #1073716) | Cod sursa (job #1588276) | Cod sursa (job #2636296) | Cod sursa (job #1068350)
#include <cstdio>
#include <memory.h>
#include <algorithm>
#define Gmax 5005
#define INF 0x3f3f3f3f
using namespace std;
int N,CP,DP[Gmax];
void read()
{
scanf("%d%d",&N,&CP);
memset(DP,INF,sizeof(DP));
}
void dynamic()
{
int Ei,Ci,gm = 0;
DP[0] = 0;
for(int i = 1; i <= N; ++i)
{
scanf("%d%d",&Ei,&Ci);
for(int j = gm+Ei; j - Ei >= 0 ; --j)
if(DP[j] > DP[j-Ei] + Ci)
DP[j] = DP[j-Ei] + Ci;
gm += Ei;
}
int ans = INF;
for(int i = CP; i <= gm ; ++i)
ans = min ( ans , DP[i]);
if(ans != INF)
printf("%d\n",ans);
else
printf("-1\n");
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
read();
dynamic();
return 0;
}