Biến đổi dãy

Xem PDF



Tác giả:
Dạng bài
Điểm: 500 (p) Thời gian: 1.0s Bộ nhớ: 1023M Input: bàn phím Output: màn hình

Cho dãy \(n\) số nguyên \(a_1, a_2, ..., a_n\). Người ta tìm cách biến đổi dãy theo cách sau: tại mỗi bước biến đổi bạn được phép tăng thêm 1 đơn vị hoặc giảm bớt 1 đơn vị giá trị của một phần tử bất kỳ trong dãy. Mục tiêu sau khi biến đổi xong, dãy số trên trở thành dãy không giảm \(a_1 \le a_2 \le ... \le a_n\) và số bước biến đổi là ít nhất.

Yêu cầu: Hãy lập trình tính số bước biến đổi tối thiểu đó.

Input

  • Dòng đầu chứa số nguyên \(n\) (\(1 \le n \le 10^4\)) là số phần tử của dãy.
  • \(n\) dòng sau, dòng thứ \(i\) chứa số nguyên \(a_i\) có giá trị tuyệt đối không quá \(10^9\).

Output

  • Một dòng duy nhất chứa số nguyên là số bước biến đổi tối thiểu.

Scoring

  • Subtask \(1\) (\(60\%\) số điểm): \(n \le 20\)
  • Subtask \(2\) (\(40\%\) số điểm): \(n \le 10^4\)

Example

Test 1

Input
5
3 2 -1 2 11
Output
4

Test 2

Input
5
2 1 1 1 1
Output
1

Bình luận