Pagini recente » Borderou de evaluare (job #2074874) | Cod sursa (job #1853223)
#include <cstdio>
using namespace std;
int g[5005],p[5005],prof[10005];
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
int k,n,i,j,max=-1;
scanf("%d",&n);
scanf("%d",&k);
for(i=1;i<=n;i++)
scanf("%d%d",&g[i],&p[i]);
for(j=1;j<=k;j++)
prof[j]=-1;
prof[0]=0;
for(i=1;i<=n;i++)
{
for(j=k-g[i];j>=0;j--)
{
if(prof[j]!=-1&&prof[j]+p[i]>prof[j+g[i]])
{
prof[j+g[i]]=prof[j]+p[i];
}
}
}
for(i=1;i<=k;i++)
{
if(max<prof[i])
max=prof[i];
}
printf("%d",max);
}