Pagini recente » Cod sursa (job #1932951) | Cod sursa (job #3140373) | Cod sursa (job #1864371) | Cod sursa (job #2684642) | Cod sursa (job #1370689)
#include <cstdio>
#define NMAX 1005
#define GMAX 10005
using namespace std;
int n,g,need;
int w[NMAX],p[NMAX];
int dp[GMAX];
void read()
{
scanf("%d%d",&n,&need);
g=10000;
for(int i=1;i<=n;++i)
scanf("%d%d",&p[i],&w[i]);
}
void knapsack()
{
for(int i=1;i<=n;++i)
for(int j=g;j>=g-w[i];--j)
if(dp[j]<dp[j-w[i]]+p[i])
dp[j]=dp[j-w[i]]+p[i];
for(int i=1;i<=10000;++i)
if(dp[i]>=need)
{
printf("%d\n",dp[i]);
return;
}
printf("-1");
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
read();
knapsack();
return 0;
}