fork download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. using ll = long long;
  5. const ll N = 18;
  6.  
  7. #define rep(i, l, r) for(ll i = l; i <= r; i++)
  8.  
  9. ll T, K;
  10. ll h[30];
  11.  
  12. bool check(ll H){
  13. ll cnt = 0;
  14. rep(i, 1, N) cnt += 2 * min(h[i], H);
  15. return cnt <= K;
  16. }
  17.  
  18. int main() {
  19. cin >> T;
  20. while(T--){
  21. cin >> K;
  22. rep(i, 1, N) cin >> h[i];
  23.  
  24. ll l = 0, r = 1e12;
  25. while( l < r ){
  26. ll mid = (l+r+1) >> 1;
  27.  
  28. if( check(mid) ){
  29. l = mid;
  30. }
  31. else r = mid - 1;
  32. }
  33.  
  34. cout << l << '\n';
  35. }
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
Standard output is empty