mickypinata

SMMR-T029: Max Inequality

Jun 1st, 2021 (edited)
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.63 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long lli;
  5.  
  6. const lli MX = cbrt(6e18);
  7.  
  8. lli func(lli n){
  9.     return (n * n * n + 5 * n) / 6;
  10. }
  11.  
  12. int main(){
  13.  
  14.     int Q;
  15.     scanf("%d", &Q);
  16.     for(int q = 1; q <= Q; ++q){
  17.         lli lim;
  18.         scanf("%lld", &lim);
  19.         lli mx = -MX;
  20.         lli l = -MX;
  21.         lli r = MX;
  22.         while(l <= r){
  23.             lli m = (l + r) / 2;
  24.             if(func(m) <= lim){
  25.                 mx = max(mx, m);
  26.                 l = m + 1;
  27.             } else {
  28.                 r = m - 1;
  29.             }
  30.         }
  31.         cout << mx << '\n';
  32.     }
  33.  
  34.     return 0;
  35. }
  36.  
Add Comment
Please, Sign In to add comment