QOJ.ac

QOJ

시간 제한: 1.5 s 메모리 제한: 32 MB 총점: 120

#17028. POSLOZI

통계

“Arrange” 是一款风靡全球的 Flash 游戏。在 “Arrange” 中,玩家会得到一个由数字 $1$ 到 $N$ 组成的排列,以及一系列允许的交换操作。玩家需要执行一系列交换,将初始排列恢复为升序序列 $1, 2, 3, 4, 5 \dots N$。

为了打破最高分记录,你需要用尽可能最少的交换次数来完成。你可能无法手动做到这一点,但你可以写一个程序来帮你完成!

输入格式

第一行包含两个整数 $N$ ($1 \le N \le 12$),表示初始序列的长度,以及 $M$ ($1 \le M \le N \times (N - 1) / 2$),表示允许的交换次数。

第二行包含一个数字 $1$ 到 $N$ 的排列。

接下来的 $M$ 行包含允许的交换的描述。如果某一行包含数字 $A$ 和 $B$,则表示你被允许交换第 $A$ 个数和第 $B$ 个数。输入中永远不会包含两个相同的交换。

注意:测试数据保证一定存在解(解不一定唯一)。

输出格式

第一行输出最少交换次数 $X$。

接下来的 $X$ 行按顺序输出所需的交换。每行输出所执行交换的索引。交换的编号按照它们在输入中出现的顺序从 $1$ 开始递增。

样例

输入样例 1

2 1
2 1
1 2

输出样例 1

1
1

输入样例 2

3 2
2 1 3
1 3
2 3

输出样例 2

3
2
1
2

输入样例 3

5 5
1 2 3 4 5
1 5
2 5
1 4
1 1
3 5

输出样例 3

0

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.