Nhân ba (C.P.VNOI 2021 LMH R1)

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Prolog, Pypy, Pypy 3, Ruby, Rust, Scala, Swift
Điểm: 1600 Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Với một số nguyên dương \(x\), xét phép biến đổi \(x\) thành \(f(x)\) mô tả như sau:

Xét các chữ số trong biểu diễn thập phân của \(x\) từ trái qua phải (từ hàng cao nhất xuống hàng đơn vị). Với mỗi chữ số \(d\) xét đến thì viết ra giá trị \(d \cdot 3\) trong hệ thập phân. Sau khi duyệt hết biểu diễn thập phân của \(x\), dãy chữ số được viết ra tạo thành biểu diễn thập phân của giá trị \(f(x)\).

Yêu cầu: Cho số nguyên không âm \(k\), xét dãy \(a_0, a_1, a_2, ..., a_n\) xây dựng theo quy tắc:

\[ \begin{cases} a_0 = k \\ a_i = f(a_{i-1}), \forall i: 1 \leq i \leq n \end{cases} \]

Hãy cho biết giá trị \(a_n\), vì kết quả có thể rất lớn nên chỉ cần đưa ra số dư của phép chia \(a_n\) cho \(123456789\).

Input

  • Dòng 1 chứa số nguyên dương \(T \leq 10^5\) là số test
  • \(T\) dòng tiếp theo, mỗi dòng chứa hai số nguyên dương \(k, n\) cách nhau bởi dấu cách ứng với một test
  • Ràng buộc: \(k \leq 10^9; n \leq 10^5\)

Output

  • Ứng với mỗi test, ghi ra một số nguyên duy nhất trên một dòng là số dư của phép chia \(a_n\) cho \(123456789\)

Example

Test 1

Input
3
1024 2
68 3
1 100000
Output
901836
96121836
29561031
Note

Với test 1: \(1024\) qua các bước biến đổi:

  • \(1024 \rightarrow 306012\) (do \(1\cdot3=3, 0\cdot3=0, 2\cdot3=6, 4\cdot3=12\))
  • \(306012 \rightarrow 901836\)

Với test 2: \(68\) qua các bước biến đổi:

  • \(68 \rightarrow 1824\) (do \(6\cdot3=18, 8\cdot3=24\))
  • \(1824 \rightarrow 324612\)
  • \(324612 \rightarrow 96121836\)

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.