Chọn ĐTQG PTNK 2026 - WOODLEN

Xem dạng PDF

Gửi bài giải

Điểm: 100,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

Cho ~n~ khúc gỗ có độ dài lần lượt là ~a_1, a_2, \dots, a_n~. Tại mỗi thao tác ta được phép chọn một khúc gỗ và tách nó ra thành hai khúc gỗ nhỏ hơn khác rỗng có độ dài bất kì. Vậy sau ~k~ thao tác, ta sẽ có ~n+k~ khúc gỗ.

Với mỗi câu hỏi có ~k=1,2,\dots,m~, hãy tìm cách thực hiện ~k~ thao tác sao cho sau cùng, chênh lệch độ dài giữa khúc gỗ dài nhất và khúc gỗ ngắn nhất là nhỏ nhất. Lưu ý, mỗi câu hỏi ~k~ độc lập với nhau.

Input

  • Dòng đầu tiên chứa số nguyên ~n, m~ ~(1 \le n \le 10^5, 1 \le m \le 2 \cdot 10^5)~.

  • Dòng tiếp theo chứa ~n~ số nguyên ~a_1, a_2, \dots, a_n~ ~(1 \le a_i \le 10^9)~ là độ dài ban đầu của từng khúc gỗ.

Output

  • In ra ~m~ số nguyên trên một dòng, cách nhau một khoảng trắng là kết quả của mỗi câu hỏi.

Scoring

Subtask Điểm Ràng buộc
1 ~15\%~ ~n \le 5, m \le 10, a_i \le 10~
2 ~15\%~ ~n \le 1000, m \le 2000, a_i \le 3~
3 ~15\%~ ~n \le 1000, m \le 2, a_i \le 1000~
4 ~20\%~ ~n \le 100, m \le 200, a_i \le 2000~
5 ~20\%~ ~n \le 1000, m \le 2000~
6 ~15\%~ Không có ràng buộc gì thêm

Sample Input 1

3 3
12 5 4

Sample Output 1

2 1 2

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.