Submit solution

Points: 200.00 (partial)
Time limit: 1.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Từ xâu nhị phân ~𝑆_0~ = "1" người ta sinh ra các xâu ~𝑆_1~, ~𝑆_2~, … , ~𝑆_𝑛~ trong đó ~𝑆_𝑖~ = ~𝑆_{𝑖−1}~ + ~𝑆_{𝑖−1}~. Ở đây ~𝑆_{𝑖−1}~ là xâu nhị phân tạo thành từ xâu 𝑆𝑖−1 bằng cách đảo hết các bit (bit 1 thành bit 0 và bit 0 thành bit 1).

Ví dụ:

~𝑆_0~ = "1"

~𝑆_1~ = "10"

~𝑆_3~ = "10010110"

~𝑆_4~ = "1001011001101001"

Yêu cầu: Cho số nguyên dương ~𝑛~, hãy xác định trong xâu ~𝑆_𝑛~ có bao nhiêu vị trí có 2 bit liên tiếp bằng nhau (tức là đếm số lần xuất hiện của xâu "00" và "11" trong 𝑆𝑛) Dữ liệu vào:

  • Dòng 1 chứa số nguyên dương ~T~ ≤ ~10^5~ là số test
  • ~T~ dòng tiếp theo, mỗi dòng chứa một số nguyên dương ~𝑛~ ≤ ~10^9~ ứng với một test

Kết quả: Ghi ra ~T~ dòng, mỗi dòng ghi một số nguyên duy nhất là số dư của kết quả tìm được khi chia cho 123456789.

Ví dụ:
Input:
4
1
2
3
4
Output:
0
1
2
5

Comments

Please read the guidelines before commenting.


There are no comments at the moment.