fork download
  1. /*
  2.  * Language: Standard C++23 [-std=c++23]
  3.  * Author: Zang Vũ aka zvwgvx
  4.  * Github & Discord & Facebook: @zvwgvx
  5.  */
  6.  
  7. #pragma GCC optimize("fast-math,O3")
  8. #pragma GCC optimize("no-stack-protector")
  9. #pragma GCC optimize("unroll-loops")
  10. // #pragma GCC optimize("Ofast")
  11. // #pragma GCC target("tune=native")
  12. // #pragma GCC target("avx,avx2,fma")
  13.  
  14. #include <bits/stdc++.h>
  15.  
  16. using namespace std;
  17.  
  18. #define ENV defined(LOCAL)
  19. #define el cout << '\n'
  20. #define rt return
  21. #define ll long long
  22. #define ull unsigned ll
  23. #define pii pair <int, int>
  24. #define pll pair <ll, ll>
  25. #define vi vector <int>
  26. #define vl vector <ll>
  27. #define vc vector <char>
  28. #define vvi vector <vector <int>>
  29. #define vvl vector <vector <ll>>
  30. #define mts multiset
  31. #define mtm multimap
  32. #define ump unordered_map
  33. #define ust unordered_set
  34. #define umts unordered_multiset
  35. #define umtm unordered_multimap
  36. #define priq priority_queue
  37.  
  38. template <typename T>
  39. T fgcd(T a, T b) {
  40. if (!a || !b) rt a | b;
  41. unsigned shift = __builtin_ctzll(a | b);
  42. a >>= __builtin_ctzll(a);
  43. while (b) {
  44. b >>= __builtin_ctzll(b);
  45. if (a > b) swap(a, b);
  46. b -= a;
  47. }
  48. rt a << shift;
  49. }
  50.  
  51. template <typename T>
  52. T fpow(T base, T exp, T mod) {
  53. T res = 1;
  54. for (; exp; exp >>= 1, base = base * base % mod)
  55. if (exp & 1) res = res * base % mod;
  56. rt res;
  57. }
  58.  
  59. template <typename T> T lcm(T a, T b) { rt a * (b / fgcd(a, b)); }
  60. template <typename T> void maximize(T& a, T b) { if (a < b) a = b; }
  61. template <typename T> void minimize(T& a, T b) { if (a > b) a = b; }
  62. template <typename T> double lg(T a, T b) { rt log(b) / log(a); }
  63. template <typename T> ull P(T n, T k) { ull res = 1; for (int i = 0; i < k; i++) res *= (n - i); rt res; }
  64. template <typename T> ull C(T n, T k) { ull res = 1; for (int i = 1; i <= k; i++) res = res * (n - i + 1) / i; rt res; }
  65.  
  66. const int MOD = 1e9 + 7;
  67. const int INF = 1e9;
  68. const int LIMIT = 1e6 + 5;
  69.  
  70. #if ENV
  71. void open(const string& file) {
  72. freopen((file + ".inp").c_str(), "r", stdin);
  73. freopen((file + ".out").c_str(), "w", stdout);
  74. }
  75. auto start = clock();
  76. void time() { cout << "\n\n[rt] " << 1.0 * (clock() - start) / CLOCKS_PER_SEC; }
  77. #endif
  78.  
  79. signed main() {
  80. cin.tie(nullptr), cout.tie(nullptr)
  81. -> ios_base::sync_with_stdio(false);
  82.  
  83. #if ENV
  84. open("main");
  85. srand(time(nullptr));
  86. #endif
  87.  
  88.  
  89. vector<ull> cand;
  90. const int maxexp = 63;
  91. for (int x = 0; x < maxexp; x++){
  92. for (int y = x + 1; y < maxexp; y++){
  93. ull num = (1ULL << x) + (1ULL << y);
  94. cand.push_back(num);
  95. }
  96. }
  97. sort(cand.begin(), cand.end());
  98.  
  99. int t;
  100. cin >> t;
  101.  
  102. while(t--) {
  103.  
  104. ull n;
  105. cin >> n;
  106. auto it = lower_bound(cand.begin(), cand.end(), n);
  107. ull best = ULLONG_MAX;
  108.  
  109. if (it != cand.end()){
  110. best = min(best, (ull)abs((ll)(*it - n)));
  111. }
  112. if (it != cand.begin()){
  113. it--;
  114. best = min(best, (ull)abs((ll)(*it - n)));
  115. }
  116. cout << best; el;
  117. }
  118.  
  119. #if ENV
  120. time();
  121. #endif
  122.  
  123. rt 0;
  124. }
  125.  
Success #stdin #stdout 0.01s 5284KB
stdin
Standard input is empty
stdout
Standard output is empty