balloons - balloons
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte

Có n quả bóng bay được thả lơ lửng trong một phòng rộng theo một đường thẳng từ trái sang phải. Steve rất thích chơi trò bắn cung làm nổ quả bóng. Anh ấy bắn một mũi tên từ trái sang phải với một độ cao tùy ý. Mũi tên sẽ di chuyển từ trái sang phải theo độ H đã chọn cho đến khi chạm vào một quả bóng. Khi mũi tên chạm vào bóng, quả bóng sẽ nổ và rơi xuống, sau đó mũi tên tiếp tục di chuyển theo hướng từ trái sang phải với độ cao giảm đi 1. Vì vậy, nếu mũi tên đang di chuyển ở độ cao H, sau khi làm nổ bóng nó sẽ đi chuyển với độ cao H-1.

Yêu cầu: Bạn viết chương trình xác định giúp cho Steve cần ít nhất bao nhiêu mũi tên đên làm nổ tất cả các quả bóng.

INPUT:

  • Dòng đầu tiên chứa số nguyên N (1<=N<=5000)
  • Dòng thứ 2 chứa dãy N số nguyên Hi (1<=Hi<=106) là độ cao quả bóng thứ i trong phòng (Các quả bóng sắp xếp theo thứ tự từ trái sang phải trên một đường thẳng)

OUTPUT: gồm một số duy nhất là số mũi tên cần bắn ít nhất để làm nổ tất cả các quả bóng.

Ví dụ

INPUT

OUTPUT

5

4 5 2 1 4

3

Back to Top