Pagini recente » Cod sursa (job #2478789) | Cod sursa (job #2576611) | Cod sursa (job #604268) | Cod sursa (job #142910) | Cod sursa (job #1426227)
#include <cstdio>
#include <algorithm>
using namespace std;
const int DMAX=10005;
int d[DMAX];
int main() {
freopen( "rucsac.in", "r", stdin );
freopen( "rucsac.out", "w", stdout );
int n, gmax, i, g, p, dr=0, pmax=0, j;
scanf( "%d%d", &n, &gmax );
for( i=1; i<=gmax; i++ )
d[i]=-1;
for( i=1; i<=n; i++ )
{
scanf( "%d%d", &g, &p );
for( j=dr; j>=0; j-- )
if( j+g<=gmax && d[j]!=-1 && d[j+g]<d[j]+p )
{
d[j+g]=d[j]+p;
if( j+g>dr )
dr=j+g;
}
}
for( i=1;i<=gmax;i++ )
if( d[i]>pmax )
pmax=d[i];
printf( "%d", pmax );
return 0;
}