QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 1024 MB مجموع النقاط: 100

#4954. 消除气球

الإحصائيات

ICPC 子区域赛颁奖典礼结束后,会场里漂浮着大量的气球。会场经理非常生气,因为明天还要举办另一场活动,必须把这些气球清理掉。幸运的是,今年 Carlinhos 带着他的弓箭准备好了射破这些气球。

同样幸运的是,由于空调气流的影响,所有气球都位于同一个垂直平面内(即平行于墙壁的平面),尽管它们的高度和位置各不相同。

Carlinhos 将从会场的左侧,在选定的高度向右侧射箭。每支箭从左向右移动,保持在射出时的高度,且位于气球所在的垂直平面内。当箭碰到一个气球时,气球会破裂,而箭会继续向右移动,但高度会降低 1。换句话说,如果箭的高度为 $H$,在射破一个气球后,它会以 $H - 1$ 的高度继续飞行。

Carlinhos 希望用尽可能少的箭射破所有气球。你能帮帮他吗?

输入格式

第一行包含一个整数 $N$,表示气球的数量($1 \le N \le 5 \times 10^5$)。由于所有气球都在同一个垂直平面内,我们定义气球的高度与 $y$ 轴相关,气球的位置与 $x$ 轴相关。气球编号从 $1$ 到 $N$。气球编号表示它们的位置,从最左侧(气球 $1$)到最右侧(气球 $N$),与它们的高度无关。对于所有 $i$,气球 $i$ 的位置与气球 $i+1$ 的位置不同。第二行包含 $N$ 个整数 $H_i$,其中 $H_i$ 表示第 $i$ 个气球的高度($1 \le H_i \le 10^6$,对于 $1 \le i \le N$)。

输出格式

程序必须输出一行,包含一个整数,即 Carlinhos 为射破所有气球所需的最少箭数。

样例

输入样例 1

5
3 2 1 5 4

输出样例 1

2

输入样例 2

4
1 2 3 4

输出样例 2

4

输入样例 3

6
5 3 2 4 6 1

输出样例 3

3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.