VM 09 Bài 02 - Non-decreasing sequence

Xem dạng PDF

Gửi bài giải


Điểm: 0,76 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
VNOI Marathon 2009 - Warm up Round
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một dãy số ~a_{1}, a_{2}, \dots, a_{n}~. Bạn được thực hiện các phép biến đổi trên dãy này. Ở mỗi phép biến đổi bạn có thể chọn một giá trị bất kỳ, sau đó tăng hoặc giảm tất cả các phần tử mang giá trị đó ~1~ đơn vị.

Ví dụ, dãy số ~[1, 9, 9, 2, 2]~ sẽ trở thành dãy ~[1, 9, 9, 3, 3]~ nếu bạn tăng tất cả các phần tử mang giá trị ~2~ lên ~1~ đơn vị.

Yêu cầu: Hãy đếm số phép biến đổi ít nhất để dãy số đã cho là dãy không giảm .

Input

  • Dòng đầu ghi số phần tử của dãy ~N~.
  • Dòng sau ghi ~N~ số tự nhiên thể hiện dãy số.

Output

  • Số phép biến đổi ít nhất cần thực hiện.

Giới hạn

  • ~1 \leq N \leq 10^{5}~ .
  • Các phần tử của dãy số là số tự nhiên không vượt quá ~10^{9}~ .
  • Trong ~50\%~ số test, ~N~ không vượt quá ~10^{3}~.

Sample Input

5
1 9 9 2 2

Sample Output

7

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.