Pagini recente » Cod sursa (job #1507288) | Cod sursa (job #1807391) | Cod sursa (job #851093) | Cod sursa (job #759859) | Cod sursa (job #1068374)
#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,mn = INF;
DP[0] = 0;
for(int i = 1; i <= N; ++i)
{
scanf("%d%d",&Ei,&Ci);
for(int j = CP + Ei; j - Ei >= 0 ; --j)
{
if(DP[j] > DP[j-Ei] + Ci)
DP[j] = DP[j-Ei] + Ci;
if( j > CP)
mn = min ( mn , DP[j]);
}
}
int ans = min ( DP[CP], mn);
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;
}