Đồi
Cho dãy ngọn đồi với chiều cao lần lượt là . Người ta muốn xây nhà trên một số ngọn đồi, nhưng để đảm bảo mỹ quan, một ngôi nhà chỉ có thể đặt trên ngọn đồi cao hơn nghiêm ngặt cả hai ngọn đồi kề (nếu có).
Ví dụ với dãy chiều cao thì chỉ có thể xây nhà trên ngọn đồi chiều cao và ngọn đồi chiều cao .
Có một chiếc máy xúc có thể giảm chiều cao của một ngọn đồi tuỳ ý đi đơn vị trong giờ làm việc. Máy xúc chỉ làm việc trên một ngọn đồi tại một thời điểm. Chiều cao có thể giảm xuống hoặc thậm chí âm. Không thể tăng chiều cao bất kỳ ngọn đồi nào.
Với mỗi từ đến , hãy tính số giờ tối thiểu cần thiết để san phẳng các ngọn đồi sao cho có ít nhất ngọn đồi đủ điều kiện xây nhà.
Dữ liệu vào
- Dòng đầu chứa số nguyên — số ngọn đồi.
- Dòng thứ hai chứa số nguyên — chiều cao các ngọn đồi.
Dữ liệu ra
In ra đúng số nguyên trên một dòng, cách nhau bởi dấu cách. Số thứ là số giờ tối thiểu để có thể xây được ít nhất ngôi nhà.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 1 2 3 2 2 |
0 1 3 | Với : ngọn đồi đã thoả mãn, cần giờ. Với : giảm xuống , khi đó các ngọn đồi và đều cao hơn các ngọn đồi kề, mất giờ. Với : mất giờ. |
| 3 1 2 3 |
0 2 | Với : ngọn đồi đã cao nhất, không cần giảm. Với : cần giảm xuống , mất giờ; khi đó ngọn đồi và đều thoả mãn. |
| 5 1 1 1 1 1 |
1 2 2 | Với : giảm xuống để ngọn đồi thoả mãn, mất giờ. Với : giảm và để ngọn đồi thoả mãn, mất giờ. Với : giảm để ngọn đồi đều thoả mãn, vẫn mất giờ. |
Bình luận