Sắp xếp 5

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

Cho \(n\) số nguyên \(a_1, a_2, \dots, a_n\). Bạn có thể thực hiện thao tác chỉnh sửa giá trị sau: chọn một phần tử bất kỳ và tăng giá trị của nó lên \(1\) đơn vị.

Hãy tìm số thao tác tối thiểu cần thực hiện để dãy số trở thành dãy không giảm, tức là \(a_i \le a_{i+1}\) với mọi \(1 \le i < n\).

Input

  • Dòng đầu tiên chứa số nguyên dương \(n\).
  • Dòng thứ hai chứa \(n\) số nguyên \(a_1, a_2, \dots, a_n\).

Output

  • Một số nguyên duy nhất là số thao tác tối thiểu cần thực hiện.

Example

Test 1

Input
5
3 2 5 1 7
Output
5
Note
  • Cần thực hiện 5 thao tác để biến dãy ban đầu thành 3, 3, 5, 5, 7. Thõa mãn yêu cầu.

Constraints

  • \(1 \le n \le 2 \cdot 10^5\)
  • \(1 \le a_i \le 10^9\)

Bình luận

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

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