QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100

#12155. 谜题 IV

Statistics

给定一个包含 $n$ 个整数的序列 $p_1, p_2, \dots, p_n$,初始时它是 $1$ 到 $n$ 的一个排列。你的任务是将该序列按升序排序。为了实现这一目标,你可以执行两种类型的操作:将一个元素的值加到其相邻元素上,或者从其相邻元素中减去一个元素的值。

在操作过程中,任何元素的值在任何时刻都不得超出范围 $[1, n]$。操作次数不得超过 $2\,500\,000$。

输入格式

第一行包含一个整数 $n$ ($2 \le n \le 30\,000$),表示输入序列的长度。 第二行包含 $n$ 个两两不同的整数 $p_1, p_2, \dots, p_n$ ($1 \le p_i \le n$),即待排序的序列。

输出格式

第一行应包含一个整数 $r$ ($0 \le r \le 2\,500\,000$),表示你想要执行的操作次数。 接下来的 $r$ 行应按以下格式描述连续的操作: a + b:将第 $b$ 个元素的值加到第 $a$ 个元素上。 a - b:从第 $a$ 个元素中减去第 $b$ 个元素的值。

在上述操作中,必须始终满足 $|a - b| = 1$。

注意,你不需要最小化操作次数。可以证明,通过执行最多 $2\,500\,000$ 次操作,总是可以将该排列排序。

样例

输入 1

3
1 3 2

输出 1

3
2 - 3
3 + 2
2 + 1

说明

序列在第一次操作后变为 $[1, 1, 2]$,第二次操作后变为 $[1, 1, 3]$,第三次操作后变为 $[1, 2, 3]$。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.