Pagini recente » Cod sursa (job #1609184) | Cod sursa (job #2575845) | Cod sursa (job #1531135) | Cod sursa (job #2751757) | Cod sursa (job #2662056)
#include <fstream>
#include <algorithm>
using namespace std;
int const N = 10007;
ifstream f ("rucsac.in");
ofstream g ("rucsac.out");
int dp [N];
int main (){
int n , G , gmax = 0;
f >> n >> G;
for(int i = 1 ; i <= n ; ++ i){
int w , p;
f >> w >> p;
for(int j = gmax ; j ; -- j)
if (dp [j] && j + w <= G)
dp [j + w] = max (dp [j + w] , dp [j] + p);
dp [w] = max (dp [w] , p);
gmax = min (gmax + p , G);
}
g << *max_element (dp + 1 , dp + 1 + G);
return 0;
}