#CT00034. Đóng gói tối ưu (Optimal Packing)

    ID: 109 Loại: Thông thường 4000ms 256MiB Tried: 1 Đã chấp nhận: 1 Độ khó: 1 Đăng bởi: Nhãn>Dynamic ProgrammingDynamic programming basicsAdvanced Dynamic ProgrammingConvex hull trick DPAdvanced TechniquesLi Chao treeRange QueriesPrefix sums

Đóng gói tối ưu (Optimal Packing)

Đóng gói tối ưu (Optimal Packing)

Phiên bản: Phước Hưng OJ Extended

Đề bài

Có NN kiện hàng theo thứ tự 1,2,…,N1,2,\ldots,N. Kiện hàng thứ ii có khối lượng Ai≥0A_i\ge 0. Cần chia toàn bộ dãy kiện hàng thành các nhóm liên tiếp không rỗng. Nếu tổng khối lượng của một nhóm bằng SS thì chi phí xử lý nhóm đó là

S2+C,S^2+C,

trong đó CC là một hằng số cho trước.

Hãy tìm tổng chi phí nhỏ nhất để chia và xử lý toàn bộ NN kiện hàng.

Input

  • Dòng đầu chứa hai số nguyên N,CN,C.
  • Dòng thứ hai chứa NN số nguyên A1,A2,…,ANA_1,A_2,\ldots,A_N.

Output

In một số nguyên duy nhất là tổng chi phí nhỏ nhất.

Subtask

  • Subtask 1 (40%): 1≤N≤20001\le N\le 2000, 0≤C≤1090\le C\le 10^9, 0≤Ai≤10000\le A_i\le 1000.
  • Subtask 2 (60%): 1≤N≤2⋅1051\le N\le 2\cdot 10^5, 0≤C≤1090\le C\le 10^9, 0≤Ai≤10000\le A_i\le 1000.

Ví dụ

Ví dụ 1

Input

3 10
2 3 4

Output

59

Giải thích

Chia thành ba nhóm riêng lẻ có chi phí (22+10)+(32+10)+(42+10)=59(2^2+10)+(3^2+10)+(4^2+10)=59, và đây là giá trị nhỏ nhất.

Ví dụ 2

Input

4 100
1 1 1 1

Output

116

Giải thích

Gộp cả bốn kiện thành một nhóm có chi phí 42+100=1164^2+100=116, nhỏ hơn mọi cách chia thành nhiều nhóm hơn.