Pagini recente » Cod sursa (job #1202282) | Cod sursa (job #556870) | Cod sursa (job #95129) | Cod sursa (job #2322745) | Cod sursa (job #1431290)
#include <cstdio>
#include <algorithm>
using namespace std;
int d[10001];
int main()
{
freopen("rucsac.in", "r", stdin);
freopen("rucsac.out", "w", stdout);
int N, G, g, p, i, j, dr, Pmax;
scanf("%d%d", &N, &G);
for(i=1; i<=G; i++)
d[i]=-1;
dr=Pmax=0;
for(i=1; i<=N; i++)
{
scanf("%d%d", &g, &p);
for(j=dr; j>=0; j--)
{
if (j+g<=G)
{
if (d[j]!=-1)
{
if (d[j+g]<d[j]+p)
{
d[j+g]=d[j]+p;
if (j+g>dr)
dr=j+g;
}
}
}
}
}
Pmax=0;
for(i=1; i<=G; i++)
if(Pmax<d[i])
Pmax=d[i];
printf("%d", Pmax);
return 0;
}