#AT0171. 小 Z 的数组操作

小 Z 的数组操作

题面描述

小 Z 有一个长度为 nn 的数组 A={a1,a2,,an}A=\{a_1,a_2,\cdots,a_n\},他可以进行任意次如下操作:

  1. 加法操作:对于所有 i[nl+1,n] i \in [n-l+1,n]aia_i,执行 ai+(i+ln)a_i+(i+l-n) 的操作,其中 ll 是小 Z 选择的执行参数,只需要满足 1ln1\le l \le n 的任意整数。换句话说,小 Z 可以选择一个整数 l[1,n]l\in [1,n],然后执行 an+l,an1+l1,an2+l2,,anl+1+1a_n+l, a_{n-1}+l-1,a_{n-2}+l-2,\cdots, a_{n-l+1}+1,对于 a1,a2,,anla_1,a_2,\cdots,a_{n-l} 不执行任何操作。
  2. 减法操作:对于所有 i[nl+1,n] i \in [n-l+1,n]aia_i,执行 ai(i+ln)a_i-(i+l-n) 的操作,其中 ll 是小 Z 选择的执行参数,只需要满足 1ln1\le l \le n 的任意整数。换句话说,小 Z 可以选择一个整数 l[1,n]l\in [1,n],然后执行 $a_n-l, a_{n-1}-(l-1),a_{n-2}-(l-2),\cdots, a_{n-l+1}-1$,对于 a1,a2,,anla_1,a_2,\cdots,a_{n-l} 不执行任何操作。

简单来说,小 Z 可以选择一个数字 ll, 将 an,an1,an2,,anl+1a_n,a_{n-1},a_{n-2},\cdots,a_{n-l+1} 按照顺序依次增加或者减少 l,l1,,1l,l-1,\cdots,1

问,小 Z 最少需要执行多少次操作,将数组 AA 的所有元素都变为 00

输入格式

一行输入一个整数 nn 表示数组长度。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n

输出格式

一行一个整数表示最少的操作次数。

样例

2
-1 3
6
5
1 3 -2 -7 5
26

说明/提示

样例 1 解释

  • 选择 l=1l=1 并执行减法操作 55 次,那么数组会变为 {1,2}\{-1,-2\}
  • 选择 l=2l=2 并执行加法操作 11 次,数组会变为 {0,0}\{0,0\}

可以证明,这是执行次数最少的方案。

数据范围

测试点 151-5n103n\le 10^3,答案不超过 10310^3

测试点 6106-10n103n\le 10^3

测试点 111511-151n2105,1015ai10151\le n \le 2*10^5,-10^{15}\le a_i \le 10^{15}