CF612F Simba on the Circle
题目描述
环形的数组上有若干个编号为 $1$ 到 $n$ 的 $n$ 个数字,每个数字大小为 $a_i$($ -10^9 \le a_i \le 10^9$),现在机器人辛巴从编号为 $s$ 的位置出发,可以朝着顺时针方向或逆时针方向行走,同时还可以选择数字,但是选择的数字需要是不降的序列(也就是下一个选择的数字不小于上一次选择的数字),并且所有的数字都要被选到,假设一次行走移动会耗费 $1$ 的单位时间且选择数字不耗费时间,请问辛巴怎么行走移动所花费的时间最少,输出最少时间和行走移动的操作。
输入格式
第一行,两个整数 $n$ 和 $s$ 分别表示环上数字个数和初始位置。($ 1 \leq s\leq n \leq 2000$)
第二行,$n$ 个整数 $a_i$($-10^9\le a_i\le 10^9$),代表写在第 $i$ 位上的数字。
位置从 $1$ 到 $n$ 顺时针编号,不保证 $a_i$ 两两不同。
输出格式
第一行为最少花费的时间,之后每一行为具体的行走操作方式,`+x` 为顺时针移动 $x$ 步,`-x` 为逆时针移动 $x$ 步($0 \leq x \leq n-1$)。