Buổi tiệc sinh nhật của Lan đã bắt đầu. Phần sinh động nhất trong cả đêm nay là các bạn trong lớp sẽ lần lượt trình bày các tiết mục văn nghệ để tặng Lan. Tuần trước, Huệ đã được phân công chuẩn bị bài hát cho cả lớp, tuy nhiên do máy tính gặp sự cố nên hiện giờ cô chỉ chuẩn bị được k bài hát, không đủ để từng bạn hát đơn ca được. Các bạn quyết định sẽ sử dụng phương án hát tốp ca để đảm bảo ai cũng sẽ được hát. Nhưng do chất giọng mỗi người khác nhau, nên những bạn có chất giọng tương đồng sẽ được phân chia vào một nhóm. Sau khi phân chia lần đầu, có tất cả n nhóm, mỗi nhóm có số lượng thành viên lần lượt là a1, a2, …, an. Lúc này, nếu số lượng nhóm ít hơn so với số lượng bài hát thì những nhóm có quá nhiều thành viên có thể tiếp tục chia ra thành nhiều nhóm nhỏ hơn, sao cho số lượng thành viên trong mỗi nhóm là ít nhất có thể. Ví dụ một nhóm có 4 người có thể chia ra thành 2 nhóm (mỗi nhóm 2 người hoặc một nhóm 3 người và một nhóm 1 người) hoặc 3 nhóm (2, 1, 1) hoặc 4 nhóm (1, 1, 1, 1). Những bạn có chất giọng không tương đồng nhau thì không thể hát cùng với nhau, tức là sẽ có những nhóm chỉ có 1 bạn. Sau một lúc phân chia, cuối cùng số lượng nhóm đúng bằng k và đảm bảo buổi tiệc diễn ra đúng như kế hoạch. Yêu cầu: Hãy cho biết nhóm có nhiều thành viên nhất là bao nhiêu người.
Dữ liệu vào:
- Dòng đầu ghi hai số nguyên dương n và k (n ≤ 10$^5$, k ≤ 10$^6$), lần lượt là số lượng nhóm sau khi phân chia lần đầu và số bài hát đã chuẩn bị.
- Dòng tiếp theo ghi n số nguyên dương ai (ai ≤ 10$^4$), là số lượng thành viên hiện tại của nhóm thứ i sau khi phân chia.
Dữ liệu ra:
Gồm một dòng ghi số lượng thành viên của nhóm có nhiều thành viên nhất sau khi phân chia lần thứ 2. Ràng buộc:
- 50% số test có n ≤1000, ai ≤ 100;
- 50% số test còn lại không ràng buộc gì thêm.
Ví dụ:
input | output |
---|---|
4 8 5 1 7 3 |
3 |
Bình luận