[Đồng Tháp - 21] Sắp xếp kiện hàng
Tại một bến cảng có n kiện hàng cần được xếp xuống tàu để vận chuyển. Các kiện hàng được đánh số từ 1 đến n theo thứ tự nó được gửi đến kho hàng, kiện hàng thứ i có khối lượng ai.
Người ta lần lượt xếp từng kiện hàng theo thứ tự từ kiện hàng thứ nhất, đến kiện hàng thứ hai,… cho đến khi không thể xếp được nữa. Biết rằng tàu hàng có trọng tải là M và các kiện hàng xếp xuống không được vượt quá trọng tải của nó.
Những kiện hàng xếp được phải để lại cảng chờ chuyến tàu tiếp theo.
Do yêu cầu đặc biệt, kiện hàng thứ k cần phải được vận chuyển trong thời gian sớm nhất, vì vậy ban quản lý cảng quyết định chọn một số kiện hàng để lại cảng (thay vì xếp lên chuyến tàu này) nhường chỗ cho kiện hàng k.
Yêu cầu:
Hãy cho biết ban quản lý cần phải chọn ít nhất bao nhiêu kiện hàng để lại cảng thay vì chúng được xếp lên tàu để nhường chỗ cho kiện hàng k?
Dữ liệu:
Cho từ tệp KIENHANG.INP gồm hai dòng:
Dòng đầu: ba số nguyên dương n, M, k (1 ≤ k ≤ n ≤ 10⁵, 1 ≤ M ≤ 10⁹)
Dòng hai: ghi n số nguyên dương a₁, a₂, ..., aₙ (1 ≤ aᵢ ≤ M)
Kết quả:</h5>
Ghi vào file KIENHANG.OUT một dòng ghi một số nguyên là số kiện hàng ít nhất phải để lại cảng để kiện hàng k được xếp lên tàu.
Ví dụ:
KIENHANG.INP
8 20 6 5 4 8 2 3 10 6 7
KIENHANG.OUT
2
Giải thích:
Theo thứ tự sẽ xếp 4 kiện hàng đầu tiên xuống tàu với tổng khối lượng 19. Tuy nhiên kiện hàng thứ 6 có khối lượng 10 được ưu tiên xếp trước nên phải để lại ít nhất 2 kiện hàng trước đó để đủ chỗ.
Ràng buộc:
Có 70% số test tương ứng với 70% số điểm có n ≤ 10³.
Có 30% số test tương ứng với 30% số điểm có n ≤ 10⁵.
Comments