fork(1) download
  1. #include <map>
  2. #include <set>
  3. #include <list>
  4. #include <cmath>
  5. #include <ctime>
  6. #include <deque>
  7. #include <queue>
  8. #include <stack>
  9. #include <string>
  10. #include <bitset>
  11. #include <cstdio>
  12. #include <limits>
  13. #include <vector>
  14. #include <climits>
  15. #include <cstring>
  16. #include <cstdlib>
  17. #include <fstream>
  18. #include <numeric>
  19. #include <sstream>
  20. #include <iostream>
  21. #include <algorithm>
  22. #include <unordered_map>
  23.  
  24. using namespace std;
  25. int main() {
  26. /* Enter your code here. Read input from STDIN. Print output to STDOUT */
  27. int q;
  28. for(cin>>q;q>0;q--) {
  29. long long n,o;
  30. cin>>o;
  31. n=o+1;
  32. long long j = -1;
  33. while(n) {
  34. n=n/2;
  35. j++;
  36. }
  37. long long mx = j-1;
  38. long long val = o-(((long long)1)<<j);
  39. if(val>=0) {
  40. int temp = val;
  41. long long bit = 0;
  42. val++;
  43. while(val>0) {
  44. bit++;
  45. val=val/2;
  46. }
  47. mx = max(bit,mx);
  48. }
  49. cout<<j+mx<<endl;
  50. }
  51. return 0;
  52. }
Success #stdin #stdout 0s 4260KB
stdin
3
3
5
9
stdout
3
4
5