AT_abc233_f.[ABC233F] Swap and Sort
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个长度为 N 的排列 P=(P1,P2,…,PN),它是 1,2,…,N 的一个排列。
你可以进行 M 种不同的操作,第 i 种操作是“交换 P 的第 ai 个元素和第 bi 个元素”。
你可以按照任意顺序,最多进行 5×105 次操作。请判断是否可以将 P 排成升序。
如果可以,请给出一种操作序列。如果不可以,请说明无法做到。
输入格式
输入通过标准输入按以下格式给出。
N P1 P2 … PN M a1 b1 a2 b2 ⋮ aM bM
输出格式
如果可以将 P 排成升序,请按以下格式输出:
K c1 c2 … cK
其中,K 表示操作次数,ci (1≤i≤K) 表示第 i 次执行的是第 ci 种操作。
请注意,必须满足 0≤K≤5×105。
如果无法将 P 排成升序,请输出 -1。
输入输出样例
输入#1
6 5 3 2 4 6 1 4 1 5 5 6 1 2 2 3
输出#1
3 4 2 1
输入#2
5 3 4 1 2 5 2 1 3 2 5
输出#2
-1
输入#3
4 1 2 3 4 6 1 2 1 3 1 4 2 3 2 4 3 4
输出#3
0
说明/提示
限制条件
- 2≤N≤1000
- P 是 1,2,…,N 的一个排列
- 1≤M≤min(2×105, 2N(N−1))
- 1≤ai<bi≤N
- 若 i=j,则 (ai,bi)=(aj,bj)
- 输入中的所有值均为整数
样例解释 1
P 变化过程如下:(5,3,2,4,6,1)→(5,2,3,4,6,1)→(5,2,3,4,1,6)→(1,2,3,4,5,6)。
样例解释 2
无法将 P 排成升序。
样例解释 3
初始时 P 可能已经是升序排列。此外,像下面这样的答案也是正确的:
4 5 5 5 5
注意,不要求操作次数最少。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?