Khôi phục bức tường (đề HSG 12 Quảng Ninh 2023)
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
rest.inp
Output:
rest.out
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python
Bức tường gồm ~n~ cột gạch, chiều cao cột thứ ~i~ ban đầu bằng ~h_i~, chiều cao được đo bằng số viên gạch. Bạn phải khôi phục lại bức tường để tất cả ~n~ cột có chiều cao bằng nhau.
Bạn được phép thực hiện các thao tác sau:
- Đặt một viên gạch lên trên đỉnh một cột, chi phí của thao tác này là ~a~;
- Dỡ một viên gạch khỏi đỉnh một cột không trống, chi phí cho thao tác này là ~r~;
- Di chuyển một viên gạch từ đỉnh một cột không trống này sang đỉnh một cột khác, chi phí cho thao tác này là ~m~.
Bạn không thể tạo thêm cột hoặc bỏ qua cột tồn tại trước đó, ngay cả khi chiều cao của nó trở thành 0. Hãy tính tổng chi phí khôi phục tối thiểu, hay nói cách khác là tính tổng chi phí tối thiểu để làm tất cả ~n~ cột có chiều cao bằng nhau.
Dữ liệu
- Dòng đầu tiên chứa 4 số nguyên ~n~, ~a~, ~r~, ~m~ (~1 \le n \le 10^5~; ~0 \le a, r, m \le 10^4~) tương ứng là số cột và chi phí các thao tác đặt, dỡ, di chuyển một viên gạch.
- Dòng thứ hai chứa ~n~ số nguyên ~h_1, h_2, \ldots, h_n~ (~0 \le h_i \le 10^9~) là độ cao các cột.
Kết quả
Một số nguyên là chi phí khôi phục tối thiểu.
Ví dụ
Ví dụ 1
REST.INP
5 1 2 4
5 5 3 6 5
REST.OUT
4
Giải thích: Một cách khôi phục bức tường với chi phí tối thiểu:
- Đặt một viên gạch lên đỉnh cột thứ 3, chi phí 1. Độ cao các cột là 5, 5, 4, 6, 5.
- Tiếp tục đặt một viên gạch lên đỉnh cột thứ 3, chi phí 1. Độ cao các cột là 5, 5, 5, 6, 5.
- Dỡ một viên gạch khỏi đỉnh cột thứ 4, chi phí 2. Độ cao các cột là 5, 5, 5, 5, 5.
Tổng chi phí là ~1 + 1 + 2 = 4~.
Ví dụ 2
REST.INP
5 1 2 2
5 5 3 6 5
REST.OUT
3
Giải thích: Một cách khôi phục bức tường với chi phí tối thiểu:
- Di chuyển một viên gạch từ đỉnh cột thứ 4 sang đỉnh cột thứ 3, chi phí 2. Độ cao các cột là 5, 5, 4, 5, 5.
- Đặt một viên gạch lên đỉnh cột thứ 3, chi phí 1. Độ cao các cột là 5, 5, 5, 5, 5.
Tổng chi phí là ~2 + 1 = 3~.
Giới hạn
- Subtask 1 (25% số test): ~a = r~ và ~m \ge a + r~;
- Subtask 2 (25% số test): ~1 \le n \le 10^3~ và ~0 \le h_i \le 10^4~;
- Subtask 3 (25% số test): ~0 \le h_i \le 10^6~;
- Subtask 4 (25% số test): không có thêm ràng buộc nào.
Bình luận