CSES - Increasing Array | Dãy tă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: 800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn được cho một mảng gồm \(n\) số nguyên dương. Bạn cần biến đổi sao cho mảng này được sắp xếp theo trình tự tăng dần, và mọi phần tử trong mảng đều không nhỏ hơn phần tử đứng trước.

Trong mỗi lần biến đổi, bạn có thể tăng một phần tử lên một đơn vị. Hãy tìm số lần biến đổi ít nhất để thoả mản điều kiện trên.

Input

  • Dòng đầu chỉ chứa số nguyên dương \(n\) là độ dài của mảng
  • Dòng thứ hai gồm \(n\) số nguyên dương \(x_1, x_2, \ldots, x_n\), là các phần tử của mảng

Constraints

  • \(1 \leq n \leq 2\cdot 10^5\)
  • \(1 \leq x_i \leq 10^9\)

Output

  • In ra số lần biến đổi ít nhất

Example

Test 1

Input
5
3 2 5 1 7
Output
5

Bình luận (26)

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