fork download
  1. #include <bits/stdc++.h>
  2. #pragma GCC optimize ("O3")
  3. #define int long long
  4. using namespace std;
  5.  
  6. #define INF 1e18
  7.  
  8. int32_t main() {
  9. ios_base::sync_with_stdio(false);
  10. cin.tie(NULL);
  11. int N, W;
  12. int S = 0;
  13. cin >> N >> W;
  14. vector<int> w(N), v(N);
  15. for (int i = 0; i < N; i++) {
  16. cin >> w[i] >> v[i];
  17. S += v[i];
  18. }
  19. vector<int> dp(S + 1, 1e9); //從價值來dp
  20. dp[0] = 0;
  21. for(int i = 0; i < N; i++){
  22. for(int j = S; j >= 0; j--){
  23. if(j >= v[i]){
  24. dp[j] = min(dp[j], dp[j - v[i]] + w[i]);
  25. }
  26. }
  27. }
  28. for(int i = 0; i <= S; i++){
  29. cout << dp[i] << endl;
  30. }
  31. for(int i = S; i >= 0; i--){
  32. if(dp[i] <= W){
  33. cout << i << endl;
  34. exit(0);
  35. }
  36. }
  37. }
Success #stdin #stdout 0.01s 5300KB
stdin
3 8
3 30
4 50
5 60
stdout
0
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
3
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
4
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
5
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
7
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
8
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
9
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
1000000000
12
90