Pagini recente » Cod sursa (job #3156521) | Cod sursa (job #869524) | Cod sursa (job #1365558) | Cod sursa (job #540412) | Cod sursa (job #1426832)
#include <stdio.h>
#include <algorithm>
int cost[10005];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int n,g,w,p,maxdr=0,maxp,poz=0,s,i,j;
scanf("%d%d",&n,&g);
maxdr=1;
for(i=1; i<=g; i++)
cost[i]=-1;
s=0;
for(i=1; i<=n; i++)
{
scanf("%d%d",&w,&p);
s+=w;
for(j=maxdr; j>=0; --j)
if(cost[j+w]!=-1)
{
cost[j+w]=std::max(cost[j+w],cost[j]+p);
if(j+w>maxdr)
maxdr=j+w;
}
}
if(s<g)
{
printf("-1\n");
return 0;
}
int mina = 2000000000, a;
for(j=g; j<=10000; ++j)
if(cost[j]<mina&&cost[j]>0)
{
mina=cost[j];
a=j;
}
printf("%d\n",a);
return 0;
}