QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#18593. 美麗的江山

统计

ibasic 不喜歡 Dimigo 所在的廣德山,因此決定繪製一座新的山。

ibasic 繪製的山可以用二維平面上的 $N+1$ 個點 $(0, h_0), (1, h_1), \ldots, (N, h_N)$ 來表示。所有的 $h_i$ 皆為非負整數,且 $h_0 = h_N = 0$。

ibasic 想要將他繪製的山變成一座「美麗江山」。所謂的「美麗江山」是指對於所有 $1 \le i \le N$,皆滿足 $|h_i - h_{i-1}| = 1$ 的山。

為了將他繪製的山變成「美麗江山」,ibasic 可以對圖形進行以下修改:

  • 選擇兩個整數 $l$ 與 $r$(其中 $1 \le l \le r \le N-1$),將 $h_l, h_{l+1}, \ldots, h_{r}$ 的值各加上 $1$。
  • 選擇兩個整數 $l$ 與 $r$(其中 $1 \le l \le r \le N-1$),將 $h_l, h_{l+1}, \ldots, h_{r}$ 的值各減去 $1$。

由於修改過程中不能破壞圖形,因此在修改後,所有的 $h_i$ 必須保持大於或等於 $0$。

修改圖形是一項相當麻煩的工作,因此 ibasic 決定將修改次數降至最低。請計算 ibasic 為了將他繪製的山變成「美麗江山」,最少需要進行幾次修改。

輸入格式

第一行輸入一個整數 $N$。$(2 \le N \le 10^6)$

第二行輸入 $N+1$ 個整數 $h_0, h_1, \ldots, h_N$,代表山的高度,以空白分隔。$(0 \le h_i \le 10^9;$ $h_0 = h_N = 0)$

輸出格式

第一行輸出 ibasic 為了將他繪製的山變成「美麗江山」所需的最少修改次數。若無論如何修改都無法將其變成「美麗江山」,則輸出 -1

範例

範例輸入 1

4
0 3 2 4 0

範例輸出 1

3

範例輸入 2

5
0 3 2 5 9 0

範例輸出 2

-1

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.