[VTT Q4 Contest 02] Bài 2: Tháp đầy đủ [TOWER]
Xem dạng PDFMột tháp là một chồng các đĩa đồng trục, đĩa nhỏ nằm trên đĩa lớn. Tháp được gọi là tháp ước số nếu đường kính mọi đĩa là số nguyên dương và đường kính của mỗi đĩa là ước của đường kính đĩa nằm ngay dưới nó.
Một tháp ước số là đầy đủ nếu không thể chèn thêm đĩa vào giữa hai đĩa liền kề nào mà vẫn giữ được tính chất tháp ước số. Cụ thể, với cặp số nguyên dương ~(a, b)~ mà ~a~ là ước của ~b~, một tháp đầy đủ của ~(a, b)~ là dãy đường kính các đĩa (từ trên xuống dưới) ~x_0, x_1, \dots, x_k~ thỏa mãn:
- ~x_0 = a~ và ~x_k = b~;
- với mỗi ~i = 0, 1, \dots, k-1~, ~x_i~ là ước của ~x_{i+1}~;
- không tồn tại số ~y~ nào với ~x_i < y < x_{i+1}~ mà ~x_i~ là ước của ~y~ và ~y~ là ước của ~x_{i+1}~.
Hình minh họa: một tháp gồm 4 đĩa chồng lên nhau, từ trên xuống lần lượt có đường kính 3, 9, 18, 36.
Ví dụ với cặp ~(3, 36)~: dãy ~(3, 9, 18, 36)~ là tháp đầy đủ; còn dãy ~(3, 12, 36)~ thì chưa đầy đủ vì có thể chèn 6 vào giữa 3 và 12 để được ~(3, 6, 12, 36)~.
Chiều cao của tháp là số đĩa của nó; trọng số của tháp là tổng đường kính các đĩa ~x_0 + x_1 + \dots + x_k~. Với cặp ~(3, 36)~ có các tháp đầy đủ ~(3, 9, 18, 36)~, ~(3, 6, 12, 36)~, ~(3, 6, 18, 36)~, tất cả đều cao 4 và có trọng số lần lượt là 66, 57, 63.
Yêu cầu: cho cặp ~(a, b)~, tìm chiều cao và trọng số của tháp đầy đủ có trọng số nhỏ nhất.
Dữ liệu
- Một dòng duy nhất gồm hai số nguyên dương ~a~ và ~b~ (~1 \le a, b \le 10^{12}~).
Kết quả
- In ra
-1nếu không tồn tại tháp đầy đủ ứng với cặp ~(a, b)~. - Ngược lại, in ra chiều cao và trọng số của tháp đầy đủ có trọng số nhỏ nhất.
Ví dụ
TOWER.INP
3 36
TOWER.OUT
4 57
Bình luận