PH

Các bạn giúp mình bài này với (thuật toán thôi cũng được ạ).

Bài 3. Đối xứng

Một số nguyên dương được gọi là số nhị phân đối xứng và cân bằng nếu dạng biểu diễn nhị phân của số đó là một xâu đối xứng và có số bit lượng bit 0, bit 1 chênh nhau không quá 1.

Chẳng hạn, số 313 có dạng biểu diễn nhị phân 100111001 là một xâu đối xứng, số bit 1 bằng 5, số bit 0 bằng 4, 313 là một số nhị phân đối xứng và cân bằng.

Cho số nguyên dương N hãy đếm số số đối xứng nhị phân cân bằng nhỏ hơn N

Dữ liệu Balpalin.inp

1 dòng duy nhất là số nguyên N (1 <= N <= 2x 10^12)

Kết quả Balpalin.out

1 dòng duy nhất số nguyên kết quả

Ví dụ

balpalin.inp

balpalin.out

10

3