Pagini recente » Cod sursa (job #1699442) | Cod sursa (job #1298479) | Cod sursa (job #1538937) | Cod sursa (job #2419694) | Cod sursa (job #1540279)
#include <iostream>
#include <fstream>
using namespace std;
int d[100001];
int main()
{
ifstream fin ( "rucsac.in" );
ofstream fout ( "rucsac.out" );
int n, smax, p, gg, g, nr;
fin >> n >> gg;
for ( int i=1; i<=gg; i++ ) d[i] = -1;
d[0] = 0; smax = 0;
for ( int i=1; i<=n; i++ ) {
fin >> g >> p;
for ( int j=smax; j>=0; j-- )
if ( d[j]!=-1 && j+g<=gg ) {
if ( d[j+g] < d[j]+p )
d[j+g] = d[j]+p;
if ( j+g > smax ) smax = j+g;
}
}
int profit = 0;
for ( int i=gg; i>=1; i-- )
if ( d[i] > profit )
profit = d[i];
fout<< profit;
return 0;
}