QOJ.ac

QOJ

Límite de tiempo: 4.0 s Límite de memoria: 1024 MB Puntuación total: 100

#9961. 奶牛

Estadísticas

一片长长的牧场被划分为 $n$ 个连续的段,编号从 $1$ 到 $n$。第 $i$ 段草的初始高度为 $h_i$。每一段中都有一头牛在吃草。这些段之间由栅栏隔开。牛不能在段之间移动,但它们可以将头伸过栅栏,吃相邻段的草(对于每个 $1 \le i \le n-1$,第 $i$ 段和第 $i+1$ 段相邻)。

每一分钟,每头牛都会选择一个段来吃草:

  • 如果牛所在的段还有草($h_i > 0$),牛总是选择自己所在的段。
  • 否则,牛会选择相邻段中仍然有草的段。
  • 如果牛所在的段和相邻段都没有草,牛则什么也不做。

如果有 $x$ 头牛在同一段吃草,它们会在一分钟内将该段的草高度减少 $x$;不过草的高度不能低于零。因此,一分钟后,草的高度变为 $h_i := \max(0, h_i - x)$。

牛群会通力合作,以最快的速度吃完牧场上所有的草。请问它们需要多少分钟才能完成?

输入格式

第一行包含一个整数 $n$ ($1 \le n \le 200\,000$),表示牧场中段的数量。 第二行包含 $n$ 个整数 $h_1, h_2, \dots, h_n$ ($0 \le h_i \le 10^9$),表示连续各段草的初始高度。至少有一个 $h_i$ 的值大于零。

输出格式

输出一个整数,表示吃完所有草所需的最少分钟数。

样例

样例输入 1

5
5 4 0 4 6

样例输出 1

4

样例输入 2

3
1 4 6

样例输出 2

5

说明

在第一个样例中,最优策略如下:

  • $[5, 4, 0, 4, 6]$ – 第 3 头牛选择相邻的第 4 段。其他牛在各自的段吃草。
  • $[4, 3, 0, 2, 5]$ – 第 3 头牛选择第 4 段。
  • $[3, 2, 0, 0, 4]$ – 第 3 头牛选择第 2 段,第 4 头牛选择第 5 段。
  • $[2, 0, 0, 0, 2]$ – 第 3 头牛什么也不做;第 2 头牛选择第 1 段;第 4 头牛选择第 5 段。
  • $[0, 0, 0, 0, 0]$ – 牛群在 4 分钟内吃完了所有的草。

在第二个样例中,牛群没有选择余地。过程必须如下进行: $[1, 4, 6] \to [0, 3, 5] \to [0, 1, 4] \to [0, 0, 3] \to [0, 0, 1] \to [0, 0, 0]$

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.