[Nam Định - TS10 - 2025] Bài 3: Cắt dây

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

An có một sợi dây có độ dài ~n~. An thực hiện ~k~ lần cắt dây như sau:

  • Mỗi lần, chọn đoạn dây dài nhất trong các đoạn hiện có.
  • Cắt thành 2 đoạn dây theo cách sau:
    • Nếu đoạn dây có độ dài chẵn là ~2u~, cắt thành hai đoạn có độ dài ~u~.
    • Nếu đoạn dây có độ dài lẻ là ~2u + 1~, cắt thành hai đoạn có độ dài là ~u~ và ~u + 1~.

Sau ~k~ lần, An có tổng cộng ~k~ đoạn dây.

Yêu cầu:
Em hãy cho biết, sau ~k~ lần cắt:

  • Độ dài đoạn dây dài nhất là bao nhiêu?
  • Số lượng đoạn dài nhất An có là bao nhiêu?
INPUT
  • Dòng đầu tiên chứa số nguyên dương ~n~ ~(2 \leq n \leq 10^{18})~.
  • Dòng thứ hai chứa số nguyên dương ~k~ ~(1 \leq k \leq n - 1)~
OUTPUT
  • Một dòng duy nhất chứa ~2~ số nguyên dương là độ dài đoạn dây ngắn nhất và số lượng đoạn dài nhất mà An có sau ~k~ lượt cắt.
SAMPLE INPUT
100 
5
SAMPLE OUTPUT
25 2
Giải thích
  • Lần cắt 1 có 2 đoạn: 50, 50
  • Lần cắt 2 có 3 đoạn: 25, 25, 50
  • Lần cắt 3 có 4 đoạn: 25, 25, 25, 25
  • Lần cắt 4 có 5 đoạn: 12, 13, 25, 25, 25
  • Lần cắt 5 có 6 đoạn: 12, 13, 12, 13, 25, 25
SUBTASKS
Subtask Điểm Ràng buộc
1 75% ~n, k \leq 10^4~
2 25% ~n, k \leq 10^{18}~

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.