Pagini recente » Cod sursa (job #932577) | Cod sursa (job #2385227) | Borderou de evaluare (job #1296475) | Cod sursa (job #320903) | Cod sursa (job #1950207)
#include <fstream>
#include <vector>
using namespace std ;
ifstream cin ("rucsac.in") ;
ofstream cout ("rucsac.out") ;
int dp[10001];
int main()
{
dp [0] = 0 ;
int sum_cur = 0 ;
int n, gmax ;
cin >> n >> gmax ;
while (n --) {
int g, p;
cin >> g >> p ;
for (int i = min(sum_cur,gmax-g) ; i >= 0 ; -- i) {
//if (i + g < 10001) {
dp [i + g] = max (dp [i + g] , dp[i] + p) ;
//}
}
sum_cur += g ;
}
int best = 0 ;
for (int i = gmax; i >= 0; -- i) {
best = max (best, dp[i]) ;
}
cout << best << '\n' ;
return 0 ;
}