Cod sursa(job #221026)
#include <stdio.h>
#define N 1005
#define SMAX 10005
int v[N],val[N],a[SMAX],s,n;
void citirith()
{
scanf("%d%d",&n,&s);
for (int i=1; i<=n; i++)
scanf("%d%d",&v[i],&val[i]);
}
void rezolvarith()
{
int i,j;
for (i=1; i<=n; i++)
for (j=s-1; j>=1; --j)
{
if (a[j])
if (a[j]+val[i]>a[j+v[i]])
a[j+v[i]]=1;
if (v[i]>a[v[i]])
a[v[i]]=val[i];
}
for (i=s; a[i]==0; i++);
printf("%d ",a[i]);
}
int main()
{
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
citirith();
rezolvarith();
}