CF612F.Simba on the Circle
省选/NOI-
通过率:0%
时间限制:1.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a circular array with n elements. The elements are numbered from some element with values from 1 to n in clockwise order. The i-th cell contains the value a__i. The robot Simba is in cell s.
Each moment of time the robot is in some of the n cells (at the begin he is in s). In one turn the robot can write out the number written in current cell or move to the adjacent cell in clockwise or counterclockwise direction. To write out the number from the cell Simba doesn't spend any time, but to move to adjacent cell Simba spends one unit of time.
Simba wants to write the number from each cell one time, so the numbers will be written in a non decreasing order. Find the least number of time units to write out all numbers.
给你一个包含 n 个元素的环形数组。这些元素按顺时针方向从某个起始元素开始依次编号为 1 至 n。第 i 个位置上存放的数值为 ai。机器人 Simba 起始于位置 s。
在每一时刻,Simba 都位于这 n 个位置中的某一个(初始时刻位于 s)。在每一轮操作中,Simba 可以执行以下两种操作之一:
- 输出当前所在位置上的数字;
- 向顺时针或逆时针方向移动到相邻位置。
Simba 输出当前格子中的数字不消耗时间,但向相邻格子移动需消耗 1 单位时间。
Simba 希望恰好输出每个位置上的数字一次,且输出的数字序列是非递减的。求输出所有数字所需的最少时间单位数。
输入格式
The first line contains two integers n and s (1 ≤ s ≤ n ≤ 2000) — the number of cells in the circular array and the starting position of Simba.
The second line contains n integers a__i ( - 109 ≤ a__i ≤ 109) — the number written in the i-th cell. The numbers are given for cells in order from 1 to n. Some of numbers a__i can be equal.
第一行包含两个整数 n 和 s(1≤s≤n≤2000)—— 分别表示环形数组中的单元格数量以及辛巴的起始位置。
第二行包含 n 个整数 ai(−109≤ai≤109)—— 表示第 i 个单元格中所写的数字。这些数字按单元格编号从 1 到 n 的顺序给出。某些 ai 的值可能相等。
输出格式
In the first line print the number t — the least number of time units.
Each of the next n lines should contain the direction of robot movement and the number of cells to move in that direction. After that movement the robot writes out the number from the cell in which it turns out. The direction and the number of cells should be printed in the form of +x in case of clockwise movement and -x in case of counterclockwise movement to x cells (0 ≤ x ≤ n - 1).
Note that the sum of absolute values of x should be equal to t.
第一行输出数字 t —— 所需的最少时间单位数。
接下来的 n 行中,每行应包含机器人移动的方向以及沿该方向移动的格子数。机器人完成该次移动后,会输出其最终所在格子中的数字。方向与移动格子数应以如下形式输出:若为顺时针移动,则表示为 +x;若为逆时针移动,则表示为 -x(其中 0≤x≤n−1)。
注意:所有 x 的绝对值之和应等于 t。
输入输出样例
输入#1
9 1 0 1 2 2 2 1 0 1 1
输出#1
12 +0 -3 -1 +2 +1 +2 +1 +1 +1
输入#2
8 1 0 1 0 1 0 1 0 1
输出#2
13 +0 +2 +2 +2 -1 +2 +2 +2
输入#3
8 1 1 2 3 4 5 6 7 8
输出#3
7 +0 +1 +1 +1 +1 +1 +1 +1
输入#4
8 1 0 0 0 0 0 0 0 0
输出#4
7 +0 +1 +1 +1 +1 +1 +1 +1
输入解题思路,AI测评打分。不知道怎么写?