CSES - Stick Divisions | Chia gậy

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: 1300 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn có một que gậy với độ dài \(x\) và bạn muốn chia nó thành \(n\) que, tổng độ dài các phần bị chia là \(x\).
Mỗi bước bạn có thể lấy bất kì que nào và chia nó thành hai que. Chi phí của một thao tác như vậy là chiều dài của que bị chia.
Chi phí tối thiểu cần thiết để tạo ra các que là bao nhiêu?

Input

  • Dòng đầu vào đầu tiên chứa hai số nguyên \(x\)\(n\): chiều dài của que và số que trong việc chia
  • Dòng thứ hai chứa \(n\) số nguyên \(d_1, d_2, \ldots, d_n\): chiều dài của mỗi que trong việc chia

Constraints

  • \(1 \leq x \leq 10^9\)
  • \(1 \leq n \leq 2 \cdot 10^5\)
  • \(\sum d_i = x\)

Output

  • In một số nguyên: chi phí tối thiểu của việc chia

Example

Test 1

Input
8 3
2 3 3
Output
13
Note

Trước tiên, bạn chia que có chiều dài \(8\) thành các que có chiều dài \(3\)\(5\) (chi phí \(8\)). Sau đó, bạn chia que có chiều dài \(5\) thành các que có chiều dài \(2\)\(3\) (chi phí \(5\)). Tổng chi phí là \(8 + 5 = 13\).

Bình luận (2)

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