Hướng dẫn giải của Merlin

Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người làm lời giải.


Nộp code mẫu trước khi tự giải được bài tập là một hành vi có thể bị ban.

Nhận xét:

Với cùng một số lượng bình phải đập, việc đập các bình dung lượng lớn sẽ có khả năng làm cho nhiều bình còn lại có dung lượng bằng nhau hơn việc đập các bình dung lượng nhỏ.

Các bước xử lý:

~B1~. Nhập dữ liệu,

~B2~. Sắp xếp ~a_i~ theo thứ tự tăng dần,

~B3~. Tạo mảng int64_t ~b[100001]: b[0]=0; b[i]=b[i-1]+a[i], i = 1 \div n~,

~B4~. Với mọi ~i = n \div 1~ kiểm tra có thể giữ lại các bình từ ~1~ đến ~i~ hay không, nếu được – ghi nhận kết quả ~ans=n-i~ và chuyển sang ~B5~,

~B5~. Đưa ra kết quả ~ans~.

Độ phức tạp: O(nlogn).


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.