编程题
### 问题描述 小蓝在无聊时随机生成了一个长度为 $n$ 的整数数组,数组中的第 $i$ 个数为 $a_{i}$,他觉得随机生成的数组不太美观,想把它变成回文数组,也是就对于任意 `$i \in \left\lbrack {1, n}\right\rbrack$` 满足 $a_{i} = a_{n - i + 1}$。小蓝一次操作可以指定相邻的两个数,将它们一起加 $1$ 或减 $1$;也可以只指定一个数加 $1$ 或减 $1$,请问他最少需要操作多少次能把这个数组变成回文数组? ### 输入格式 输入的第一行包含一个正整数 $n$ 。 第二行包含 $n$ 个整数 $a_{1},a_{2},\cdots ,a_{n}$,相邻整数之间使用一个空格分隔。 ### 输出格式 输出一行包含一个整数表示答案。 ### 样例输入 ```text 4 1 2 3 4 ``` ### 样例输出 ```text 3 ``` ### 样例说明 第一次操作将 $a_{1},a_{2}$ 加 $1$,变为 $2,3,3,4$ ; 后面两次操作将 $a_{1}$ 加 $1$,变为 $4,3,3,4$ 。 ### 评测用例规模与约定 对于 ${20}\\%$ 的评测用例, $1 \leq n \leq {10}$; 对于所有评测用例, $1 \leq n \leq {10}^{5}, - {10}^{6} \leq {a}_{i} \leq {10}^{6}$ 。
查看答案
赣ICP备20007335号-2