DÃY TĂNG LIÊN TIẾP

Dãy tăng liên tiếp (daytanglientiep.*)

Cho số nguyên dương \(n\) và dãy số nguyên dương \(a_{1},a_{2},\ldots,a_{n}\). Với mỗi thao tác bạn có thể chọn số \(a_{i}\) bất kì để tăng giá trị lên 1 đơn vị hoặc giảm giá trị xuống 1 đơn vị.

Yêu cầu: Hãy cho biết cần thực hiện ít nhất bao nhiêu thao tác để từ dãy số ban đầu tạo thành dãy mới sao cho các phần tử trong dãy mới thỏa mãn \(a_{i} - a_{i - 1} = 1\ (\forall i = 2\ldots n)\)?

Dữ liệu vào:

- Dòng đầu tiên ghi số nguyên dương \(n\ (2 \leq n \leq 2000)\);

- Dòng thứ hai ghi lần lượt các số nguyên \(a_{1},a_{2},\ldots,a_{n}\ ({0 < a}_{i} \leq 10^{9})\).

Kết quả:

- Ghi một số nguyên duy nhất cho biết kết quả bài toán.

Ví dụ:

Dữ liệu vào Kết quả Giải thích
5
8 3 7 9 3
13 Cần thực hiện 13 thao tác như sau:
- Thực hiện 3 thao tác -1 ở \(a_{1}\)
- Thực hiện 3 thao tác +1 ở \(a_{2}\)
- Thực hiện 1 thao tác -1 ở \(a_{4}\)
- Thực hiện 6 thao tác +1 ở \(a_{5}\)
Dãy số ban đầu trở thành: 5 6 7 8 9

Ràng buộc:

- Subtask 1 (50% số điểm): \(n = 2\);

- Subtask 2 (50% số điểm): không có ràng buộc gì thêm.

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. vohuyen6688 (10/11)
  2. hoangbo34567 (8/12)
  3. coderpro07 (6/10)
Trong 7 ngày
  1. nhakyy (21/47)
  2. phatkrt (18/39)
  3. bennek (15/16)
Trong 30 ngày
  1. qtaydzs1tg (186/276)
  2. thang8a1 (134/263)
  3. ifindmyself1 (117/244)
Thống kê
AC/Sub: 120817/226949
Pascal: 18142
C++: 157988
Python: 50747
Lượt xem/tải tests: 42171

Lưu Hải Phong - 2020
[email protected]