fork(1) download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. void solve() {
  6.  
  7. int x;
  8.  
  9. cin >> x;
  10.  
  11. int left = 1;
  12. int right = x;
  13.  
  14. while(left + 1 < right) {
  15.  
  16. int mid = (left + right) / 2;
  17.  
  18. if(mid + x > mid ^ x && mid + mid ^ x > x && x + mid ^ x > mid) {
  19.  
  20. cout << mid << endl;
  21.  
  22. break;
  23.  
  24. }
  25.  
  26. else {
  27.  
  28. right = mid - 1;
  29.  
  30. }
  31.  
  32. }
  33.  
  34. cout << -1 << endl;
  35. }
  36.  
  37. int main() {
  38.  
  39. int t;
  40.  
  41. cin >> t;
  42.  
  43. while(t--) {
  44.  
  45. solve();
  46.  
  47. }
  48.  
  49. return 0;
  50.  
  51. }
Success #stdin #stdout 0.01s 5276KB
stdin
7
5
2
6
3
69
4
420
stdout
3
-1
-1
3
-1
2
-1
35
-1
2
-1
210
-1