Kế hoạch thuê nhân công

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1800 (p) Thời gian: 0.5s Bộ nhớ: 1G Input: PROJECT.INP Output: PROJECT.OUT

Một dự án phần mềm cần triển khai trong \(n\) tháng đánh số từ \(1\) tới \(n\). Biết rằng:

  • Bắt đầu vào một tháng, dự án có quyền thuê thêm nhân công. Để thuê mỗi nhân công cần một khoản chi phí \(H\) (trả cho nhà tuyển dụng).
  • Mỗi nhân công được thuê sẽ được trả một khoản lương \(S\) mỗi tháng kể cả khi không làm việc.
  • Kết thúc một tháng, dự án có quyền sa thải nhân công. Để sa thải mỗi nhân công cần trả một khoản chi phí \(D\).
  • Không có nhân công nào trước khi dự án bắt đầu. Mỗi tháng \(i\) cần tối thiểu \(a_i\) nhân công. Kết thúc tháng thứ \(n\), toàn bộ nhân công phải bị sa thải.

Yêu cầu: Hãy giúp ông giám đốc dự án xây dựng kế hoạch thuê nhân công để dự án được hoàn thành với chi phí thuê nhân công ít nhất có thể.

Input

Vào từ file văn bản PROJECT.INP

  • Dòng 1 chứa số tháng \(n\) \((1 \leq n \leq 4 \cdot 10^5)\).
  • Dòng 2 chứa ba số nguyên dương \(H,S,D\) \((H,S,D \leq 10^6)\).
  • Dòng 3 chứa \(n\) số nguyên dương \(a_1,a_2,\ldots,a_n\) \((∀i:a_i \leq 10^6 )\).

Output

Ghi ra file văn bản PROJECT.OUT một số nguyên duy nhất là chi phí tối thiểu tìm được.

Example

Test 1

PROJECT.INP
3
4 5 6
10 9 11
PROJECT.OUT
265
Note
  • Tháng 1 thuê \(10\) người (\(40\)) và trả lương \(10\) người (\(50\)),
  • Tháng 2 giữ nguyên số người và trả lương \(10\) người (\(50\)),
  • Tháng 3 thuê thêm \(1\) người (\(4\)) và trả lương \(11\) người (\(55\)),
  • Cuối cùng sa thải \(11\) người (\(66\)).

Nguồn: Thầy Lê Minh Hoàng

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.