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 < A và 7 \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 = B và 43 \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