Thang máy
Xem dạng PDFCâu lạc bộ Tự động hoá đang viết phần mềm mô phỏng cho mô hình thang máy của một toà tháp rất cao, các tầng được đánh số ~1, 2, 3, \ldots~ từ dưới lên. Ban đầu thang đứng ở tầng ~1~. Thang lần lượt phục vụ ~n~ yêu cầu theo đúng thứ tự cho trước; yêu cầu thứ ~i~ là đưa thang đến tầng ~f_i~.
Với mỗi yêu cầu, thang đi thẳng từ tầng đang đứng đến tầng ~f_i~; mỗi lần lên hoặc xuống một tầng mất ~a~ giây, tức là đi từ tầng ~x~ đến tầng ~y~ mất ~a \cdot |x - y|~ giây. Đến nơi, thang dừng lại mở cửa đón trả khách mất ~b~ giây rồi mới phục vụ yêu cầu kế tiếp. Nếu tầng được yêu cầu trùng với tầng thang đang đứng thì thang không di chuyển nhưng vẫn mở cửa mất ~b~ giây.
Yêu cầu
Hãy tính tổng thời gian (tính bằng giây) kể từ lúc bắt đầu cho đến khi thang phục vụ xong cả ~n~ yêu cầu, tính cả lần mở cửa cuối cùng.
Dữ liệu vào
- Dòng thứ nhất chứa ba số nguyên ~n~, ~a~ và ~b~;
- Dòng thứ hai chứa ~n~ số nguyên ~f_1, f_2, \ldots, f_n~.
Kết quả ra
Ghi ra một số nguyên duy nhất là tổng thời gian tính bằng giây.
Ràng buộc
~1 \le n \le 10^5~; ~1 \le f_i \le 10^9~; ~1 \le a, b \le 1000~.
- Subtask 1 (30% số điểm – test 01–06): ~n \le 100~ và ~f_i \le 100~;
- Subtask 2 (30% số điểm – test 07–12): ~n \le 1000~, ~f_i \le 1000~ và ~a, b \le 10~;
- Subtask 3 (40% số điểm – test 13–20): không có ràng buộc bổ sung.
Lưu ý: kết quả có thể vượt quá phạm vi kiểu số nguyên 32 bit.
Ví dụ
Dữ liệu vào mẫu 1
4 2 5
5 5 2 6
Kết quả ra mẫu 1
42
Giải thích
Thang đi từ tầng ~1~ lên tầng ~5~ hết ~4 \times 2 = 8~ giây rồi mở cửa ~5~ giây. Yêu cầu thứ hai vẫn là tầng ~5~: thang đứng yên, chỉ mở cửa ~5~ giây. Tiếp theo thang xuống tầng ~2~ hết ~3 \times 2 = 6~ giây, mở cửa ~5~ giây; cuối cùng lên tầng ~6~ hết ~4 \times 2 = 8~ giây, mở cửa ~5~ giây. Tổng thời gian là ~(8 + 5) + 5 + (6 + 5) + (8 + 5) = 42~ giây.
Bình luận