Make It The Same

Xem PDF

Nộp bài

Điểm: 800
Thời gian: 1.0s
PyPy3 0.25s
Python 3 0.25s
Bộ nhớ: 256M
PyPy3 64M
Python 3 64M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Cho hai số tự nhiên A, B, có tối đa 15 chữ số và không có những chữ số 0 vô nghĩa ở đầu. Bạn có thể chọn thực hiện một trong hai thao tác sau, có thể thực hiện vô hạn lần thao tác, với một số K cố định cho trước:

  • [Thao tác 1]: Chia số A cho K và làm tròn kết quả đến số nguyên không âm lớn nhất không lớn hơn kết quả A/K ban đầu. Lấy đó làm giá trị A mới.
  • [Thao tác 2]: Chia số B cho K và làm tròn kết quả đến số nguyên không âm lớn nhất không lớn hơn kết quả B/K ban đầu. Lấy đó làm giá trị B mới.

Ví dụ: Nếu A = 69, B = 420, K = 10, thì nếu áp dụng [Thao tác 1] thì số A lúc này bằng 6 (vì 6 \times K = 60 < A7 \times K = 70 > A), còn nếu áp dụng [Thao tác 2] thì số B lúc này bằng 42 (vì 42 \times K = 420 = B43 \times K = 430 > B).

Hãy cho biết số lượng thao tác ít nhất cần sử dụng để đạt A = B.

Input [standard]

  • Mỗi test có nhiều test cases. Dòng đầu tiên chứa số lượng các test cases, t (1≤t≤5) – số lượng các test cases. Sau đây là mô tả về các test cases.
  • Mỗi test case gồm 3 dòng, dòng một là một số A (1≤A<10^{15}), dòng hai là một số B (1≤B<10^{15}), dòng ba là một số K (2≤K≤100).

Output [standard]

  • Với mỗi test case, in ra một giá trị duy nhất là số lượng thao tác ít nhất cần sử dụng để cho A = B.

Scoring

  • 100\% số test có giới hạn như đề đã cho.

Example Tests

Example Test #1

INPUT

2
6
9
2
69
420
10

OUTPUT

5
5

Explanation

Ở test case 1, lúc đầu A = 6, B = 9. Một cách thực hiện là như sau:
Bước 1: Thực hiện [Thao tác 2], lúc này B = 4.
Bước 2: Thực hiện [Thao tác 1], lúc này A = 3.
Bước 3: Thực hiện [Thao tác 2], lúc này B = 2.
Bước 4: Thực hiện [Thao tác 1], lúc này A = 1.
Bước 5: Thực hiện [Thao tác 2], lúc này B = 1.
Sau bước 5, lúc này A=B=1, chương trình của test case này kết thúc.


Bình luận

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