Máng trượt nước
Đề bài
Mô tả
Có cây cột xếp thành một hàng, cột thứ có chiều cao . Ta muốn biến dãy chiều cao thành một dãy không giảm (tức với mọi ).
Trong một thao tác, ta chọn một đoạn con liên tiếp các cột mà chiều cao của chúng đang không giảm, rồi tăng chiều cao của mỗi cột trong đoạn đó lên .
Hãy tìm số thao tác ít nhất cần thực hiện để dãy chiều cao trở thành không giảm.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ test.
- Với mỗi bộ test:
- Dòng đầu chứa số nguyên là số cột.
- Dòng thứ hai chứa số nguyên là chiều cao các cột.
Dữ liệu ra
Với mỗi bộ test, in ra một số nguyên là số thao tác ít nhất cần thực hiện.
Ràng buộc
- Tổng trên tất cả các bộ test không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 4 5 3 2 5 5 1 2 3 5 3 3 1 1 1 |
3 2 0 |
Bộ 1: [5,3,2,5] → [5,3,3,5] → [5,4,4,5] → [5,5,5,5], cần 3 thao tác. Bộ 3: dãy đã không giảm nên cần 0 thao tác. |
| 2 2 1 3 2 3 1 |
0 2 |
Bộ 1: dãy 1 3 đã không giảm. Bộ 2: cần nâng cột thứ hai từ 1 lên 3, tốn 2 thao tác. |
Bình luận