Cải tạo vườn hoa
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
4.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Có luống hoa xếp thành hàng ngang. Luống hiện chứa đơn vị đất, và cần chứa đơn vị đất. Ba thao tác được phép thực hiện:
- Mua đất: thêm 1 đơn vị đất vào luống bất kỳ, chi phí đồng.
- Bỏ đất: bỏ 1 đơn vị đất khỏi luống bất kỳ, chi phí đồng.
- Chuyển đất: chuyển 1 đơn vị đất từ luống sang luống , chi phí đồng.
Tìm tổng chi phí nhỏ nhất để đưa tất cả các luống về đúng lượng đất cần thiết.
Dữ liệu vào
- Dòng : Bốn số nguyên , , , — số luống hoa và các chi phí tương ứng.
- dòng tiếp theo: Mỗi dòng gồm hai số nguyên và .
Dữ liệu ra
Một số nguyên — tổng chi phí nhỏ nhất.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 100 200 1 1 4 2 3 3 2 4 0 |
210 | Chi phí mua đất = 100, bỏ đất = 200, chuyển đất = 1/đơn vị/vị trí. Phương án tối ưu: chuyển 1 đất từ luống 3 sang luống 2 (phí 1), chuyển 1 đất từ luống 4 sang luống 1 (phí 3), mua 2 đất cho luống 1 (phí 200), bỏ 1 đất từ luống 4 (phí 200)... Tổng = 210. |
| 20 12 11 1 10 3 1 3 4 8 6 10 3 3 9 10 8 4 7 2 3 10 4 2 10 5 8 9 5 6 1 4 7 2 1 7 4 3 1 7 2 6 6 5 |
157 | Với luống, chi phí mua = 12, bỏ = 11, chuyển = 1/bước. Kết hợp tối ưu các thao tác cho tổng chi phí = 157. |
Ghi chú
- Luống hoa được đánh số từ đến (từ trái sang phải).
- Chi phí chuyển đất tỉ lệ với khoảng cách giữa hai luống.
Bình luận