Pagini recente » Istoria paginii runda/no-time-to-rest/clasament | Cod sursa (job #671746) | Cod sursa (job #140937) | Cod sursa (job #2224206) | Cod sursa (job #1474364)
#include <cstdio>
#include <iostream>
using namespace std;
int d[5001];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int G,W,e,c,smax,i,j;
scanf("%d%d",&G,&W);
for(i=1;i<=W;i++)
d[i]=-1;
smax=0;
for(i=1;i<=G;i++)
{
scanf("%d%d",&c,&e);
for(j=smax;j>=0;j--)
if(d[j]!=-1)
{
if(d[j+c]<d[j]+e)
d[j+c]=d[j]+e;
if(j+c>smax)
smax=j+c;
}
}
int profit=0;
for(i=1;i<=W;i++)
if(d[i]>=W)
{profit=d[i];
break;}
if(profit>=W)
printf("%d",profit);
else printf("-1");
return 0;
}