/ Vijos / 题库 /

园艺师

园艺师

园艺师

时间限制:1秒  内存限制:256M


【题目描述】

  花园的一排景观小树共有 \(n\) 棵,从左到右编号 \(1..n\),高度分别为 \(h_1,h_2,…,h_n\)。为了美观,需要把这些小树修剪成一样的高度。

  园艺师老H有一把智能剪刀,一次修剪可以把两棵相邻的小树高度减少 1。那么他最少需要修剪多少次才能达到目标?

【输入格式】

  输入的第一行包含 \(m(1≤m≤100)\),表示有 \(m\) 组数据。
  每组数据包含两行。第一行包含 \(n\),第二行包含 \(h_1,h_2,…,h_n\)。输入保证所有组数据的 \(n\) 之和不超过 \(10^6\)。

【输出格式】

  输出 \(m\) 行,每组数据输出一行,表示对用组的答案,若不能达到目标,则输出 -1。

【输入输出样例】

 Input

4
3
7 9 5
6
6 8 6 6 8 6
3
0 1 0
3
10 9 9

 Output

6
8
-1
-1

【样例解释】

  对于第一组数据,小树 2 和 3 一起修剪两次,然后小树 1 和 2 一起修剪四次,使得所有小树的高度均为 3。
  对于第二组数据,小树 1 和 2 一起修剪两次,小树 2 和 3 一起修剪两次,小树 4 和 5 一起修剪两次,小树 5 和 6 各一起修剪两次,使得所有小树的高度均为 4。

【数据限制】

  测试点 2 的所有组数据满足 \(n≤3\) 以及 \(h_i≤100\)。
  测试点 3-8 的所有组数据满足 \(n≤100\) 以及 \(h_i≤100\)。
  测试点 9-14 的所有组数据满足 \(n≤100\) 以及 \(0≤h_i≤10^9\)。
  测试点 15 满足 \(1≤n≤10^5\) 以及 \(0≤h_i≤10^9\)。
  此外,测试点 3-5 和 9-11 中的 \(n\) 均为偶数,测试点 6-8 和 12-14 中的 \(n\) 均为奇数。

【来源】

  Mr.he

信息

ID
2535
难度
9
分类
贪心 点击显示
标签
递交数
6
已通过
1
通过率
17%
被复制
2
上传者