Pagini recente » Cod sursa (job #1910471) | Cod sursa (job #2769687) | Borderou de evaluare (job #346061) | Borderou de evaluare (job #1621921) | Cod sursa (job #1950202)
#include <fstream>
#include <vector>
using namespace std ;
ifstream cin ("rucsac.in") ;
ofstream cout ("rucsac.out") ;
int main()
{
vector <int> dp (10001, -(int)(1e9)) ;
dp [0] = 0 ;
int sum_cur = 0 ;
int n, gmax ;
cin >> n >> gmax ;
while (n --) {
int g, p;
cin >> g >> p ;
for (int i = sum_cur ; 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 ;
}