fork(9) download
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. bool get_bit(int n, int position) {
  5. return (n >> position)&1;
  6. }
  7.  
  8. void set_bit(int &n, int position, bool value) {
  9. if (value)
  10. n |= 1 << position;
  11. else
  12. n &= ~(1 << position);
  13. }
  14.  
  15. int main() {
  16. int l, r, a=0, b=0;
  17. cin >> l >> r;
  18. int k;
  19. for (k = 30; k >= 0; k--) {
  20. if (get_bit(l, k) == get_bit(r, k)) {
  21. set_bit(a, k, get_bit(l, k));
  22. } else break;
  23. }
  24. b = a;
  25. set_bit(a, k, 1);
  26. set_bit(b, k, 0);
  27. for (k--; k >= 0; k--) {
  28. set_bit(a, k, 0);
  29. set_bit(b, k, 1);
  30. }
  31. if (a > b)
  32. swap(a, b);
  33. cout << a << ' ' << b << endl;
  34. return 0;
  35. }
Success #stdin #stdout 0s 3344KB
stdin
1 1000001
stdout
524287 524288