[THHV 2016 - CHL - 11] Bài 1: Số Sheldon

Xem dạng PDF

Gửi bài giải

Điểm: 20,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Người đăng:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Số Sheldon là một số nguyên dương mà dạng biểu diễn nhị phân của nó có dạng ~ABABAB \dots ABA~ hoặc ~ABABAB \dots AB~, ở đó ~A~ biểu diễn xâu gồm ~N~ bit 1 (~N > 0~) và ~B~ biểu diễn xâu gồm ~M~ bit 0 (~M > 0~). Hơn nữa, xâu ~A~ phải xuất hiện ít nhất một lần, còn xâu ~B~ có thể không xuất hiện.

Ví dụ:

  • Số 73 là số Sheldon, vì dạng biểu diễn nhị phân của nó là 1001001, ở đó xâu ~A = “1”~, ~B = “00”~.
  • Số 54 là số Sheldon, vì dạng biểu diễn nhị phân của nó là 110100, ở đó xâu ~A = “11”~, ~B = “0”~.
  • Số 7 là số Sheldon, vì dạng biểu diễn nhị phân của nó là 111, ở đó xâu ~A = “111”~ và không xuất hiện xâu ~B~.
  • Số 13 không là số Sheldon, vì dạng biểu diễn nhị phân của nó là 1101.

Yêu cầu: Cho 2 số nguyên ~X~ và ~Y~ (~0 \le X \le Y < 2^{63}~), hãy đếm số Sheldon nằm trong đoạn ~[X, Y]~.

Input

  • Gồm một dòng chứa 2 số nguyên ~X~ và ~Y~ ngăn cách nhau một dấu cách.

Output

  • Ghi ra số lượng số Sheldon nằm trong đoạn ~[X, Y]~.

Sample Input 1

1 10

Sample Output 1

10

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    ra2  đã bình luận lúc 24, Tháng 7, 2025, 10:33

    54 = 110110 trong hệ nhị phân, thay vì 110100 như trong đề.