#P14770. [ICPC 2024 Seoul R] Pair Sorting
[ICPC 2024 Seoul R] Pair Sorting
Description
有 个箱子排成一行,地上有 个球。球的编号从 到 ,对于每个 (),恰好有两个编号为 的球。此外,对于 ,第 个箱子记为 ,每个箱子 最多可以容纳两个球。初始时,对于 ,箱子 中包含两个编号为 的球。初始的箱子配置参见下面的图 F.1。
:::align{center}

图 F.1. 箱子的初始配置 :::
你只能交换相邻两个箱子中的球,这代表一次交换操作。请注意,箱子不是栈,对于相邻的箱子 和 ,你可以交换 中两个球中的一个与 中的一个球。参见下面的图 F.2。该图展示了两次交换操作。
:::align{center}

图 F.2. 相邻箱子之间的交换操作 :::
通过这些交换操作,你需要对球进行排序。排序完成后,对于 ,箱子 必须包含两个编号为 的球。特别地,当给定一个关于 的函数 时(尤其是 ),交换操作的总数不应超过 。
给定 个箱子和 个球,请编写一个程序,找到一种球的排序方法,使得交换操作的总数不超过 。
Input Format
你的程序需要从标准输入读取数据。输入恰好包含一行。该行包含一个整数 (),表示有 个箱子和 个球。
Output Format
你的程序需要向标准输出写入结果。令 为你的排序方法中交换操作的总数。输出恰好 行。第一行包含 。接下来的 行,每行包含三个整数 ,表示一次交换操作:交换箱子 中的球 与箱子 中的球 ,其中 ,。你的排序方法中的交换操作应按顺序逐行打印。数字 必须满足 。
3
6
1 3 2
2 3 1
1 2 1
1 3 2
2 3 1
1 2 1
3
5
1 3 2
2 3 1
1 3 1
2 3 1
1 2 1
Hint
翻译由 DeepSeek V3 完成
京公网安备 11011102002149号