fork download
  1. #include<bits/stdc++.h>
  2.  
  3. using namespace std ;
  4. typedef long long ll ;
  5.  
  6. ll n, threshold, speed[100005] ;
  7.  
  8. ll answer(){
  9.  
  10. ll left = 0, right = threshold + 1, mid ;
  11.  
  12. while(right > left + 1){
  13.  
  14. mid = (left + right) / 2 ;
  15.  
  16. ll y = 0, z = 0 ;
  17. for(ll i = 0 ; i < n ; i++){
  18. if(speed[i] > mid) y += (speed[i] - mid) / 3 ;
  19. else z += (mid - speed[i] + 1) / 2 ; // +1 addition for ceil value
  20. }
  21.  
  22. if(y >= z) left = mid ;
  23. else right = mid ;
  24.  
  25. }
  26.  
  27. return left ;
  28.  
  29. }
  30.  
  31. void solve(){
  32.  
  33. cin >> n >> threshold ;
  34. for(ll i = 0 ; i < n ; i++) cin >> speed[i] ;
  35.  
  36. cout << answer() << '\n' ;
  37.  
  38. }
  39.  
  40. int main(){
  41.  
  42. ll t ; cin >> t ;
  43. while(t--) solve() ;
  44.  
  45. return 0 ;
  46. }
Success #stdin #stdout 0s 4504KB
stdin
4
2 10
5 1
3 10
10 6 10
3 10
5 4 3
3 5
7 7 6
stdout
2
7
3
5