fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. #define int long long
  5. #define yes cout << "YES\n";
  6. #define no cout << "NO\n";
  7.  
  8.  
  9. void FastIO(){
  10. ios_base::sync_with_stdio(false);
  11. cin.tie(nullptr);
  12. cout.tie(nullptr);
  13. }
  14. /// Bouquet
  15. void solve(){
  16. int n,m;
  17. cin >> n >> m;
  18.  
  19. vector<int> vec(n);
  20. map<int,int> freq;
  21.  
  22. for(int i = 0; i < n; i++) cin >> vec[i];
  23.  
  24. sort(vec.rbegin(),vec.rend());
  25.  
  26. // for(int i = 0; i < n; i++){
  27. // cout << vec[i] << ' ';
  28. // }
  29. // cout << "\n";
  30.  
  31. int i = 0, j = i+1, sum = vec[i], ans = 0;
  32.  
  33. if(sum <= m)
  34. ans = sum;
  35.  
  36. while (j < n) {
  37. if (vec[i] - vec[j] > 1 || sum + vec[j] > m) {
  38. sum -= vec[i];
  39. i++;
  40. } else {
  41. sum += vec[j];
  42. j++;
  43. ans = max(ans, sum);
  44. }
  45. }
  46. if(sum <= m)
  47. ans = max(ans,sum);
  48.  
  49. cout << ans << "\n";
  50. }
  51.  
  52. signed main(){
  53. FastIO();
  54.  
  55. int t;
  56. cin >> t;
  57.  
  58. while(t--){
  59. solve();
  60. }
  61. return 0;
  62. }
Success #stdin #stdout 0.01s 5276KB
stdin
4
1 1
3
1 1
2
1 1
2
1 1
1
stdout
0
0
0
1