D - Dãy chia hết (GL THT 23/24)

Xem PDF



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

Một dãy chia hết là một dãy các số đôi một phân biệt \(a_1, a_2, \dots, a_k\) sao cho với mọi \(i\):

  • \(L \le a_i \le R\).
  • \(a_{i+1}\) chia hết cho \(a_i\) nếu \(i < k\).

Bạn được cho hai số nguyên dương \(L, R\), yêu cầu:

  • Xác định độ dài của dãy chia hết dài nhất (tìm \(k\) lớn nhất có thể).
  • Trả lời xem có bao nhiêu dãy có độ dài như vậy.

Input

  • Hai số nguyên dương \(L, R\) trên hai dòng (\(1 \le L \le R \le 10^{18}\)).

Output

  • Hai số nguyên dương cách nhau một dấu cách: số lớn nhất có thể và số dãy có độ dài \(k\). Vì kết quả có thể rất lớn nên chỉ cần in ra \(9\) chữ số cuối của kết quả.

Example

Test 1

Input
3
16
Output
3 2
Note

Các dãy chia hết thỏa mãn là \(3, 6, 12\) và \(4, 8, 16\).

Scoring

  • Subtask \(1\) (\(30\%\) số điểm): \(R < 3 \times L\).
  • Subtask \(2\) (\(30\%\) số điểm): \(R < 5 \times L\).
  • Subtask \(3\) (\(20\%\) số điểm): \(R \le 1000\).
  • Subtask \(4\) (\(20\%\) số điểm): Không có giới hạn gì thêm.

Bình luận

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

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