Pagini recente » Cod sursa (job #1573220) | Cod sursa (job #2054374) | Istoria paginii runda/emag_2016-incepatori-3/clasament | Cod sursa (job #1768425) | Cod sursa (job #1068372)
#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; j - Ei >= 0 ; --j)
if(DP[j] > DP[j-Ei] + Ci)
DP[j] = DP[j-Ei] + Ci;
if(Ei > CP)
mn = min ( mn , Ci);
}
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;
}