AT_arc162_b.[ARC162B] Insertion Sort 2
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定一个 $ (1,2,\ldots,N) $ 的排列 $ P=(P_1,P_2,\ldots,P_N) $。
请判断是否可以通过不超过 2×103 次如下操作将 P 排成升序。如果可以,请给出一种实际的操作方案。
- 选择满足 1≤i≤N−1,0≤j≤N−2 的整数 i,j。将 P 中的第 i 项和第 i+1 项 (Pi,Pi+1) 拿出,剩下的序列记为 Q=(Q1,Q2,…,QN−2)。然后将 P 替换为 (Q1,…,Qj,Pi,Pi+1,Qj+1,…,QN−2)。
输入格式
输入通过标准输入给出,格式如下:
N P1 P2 $ \ldots $ PN
输出格式
如果无法在 2×103 次操作内将 P 排成升序,输出 No。
如果可以,设操作次数为 M (0≤M≤2×103),第 k 次操作 (1≤k≤M) 选择的 i,j 分别为 ik,jk,则输出格式如下:
Yes M
i1 j1
i2 j2
⋮
iM jM
如果存在多种满足条件的方案,输出任意一种都视为正确。
输入输出样例
输入#1
5 1 4 2 3 5
输出#1
Yes 1 3 1
输入#2
2 2 1
输出#2
No
输入#3
4 3 4 1 2
输出#3
Yes 3 3 0 1 2 3 0
说明/提示
限制
- 2≤N≤103
- P 是 $ (1,2,\ldots,N) $ 的一个排列
- 输入的所有数均为整数
样例解释 1
以 i=3,j=1 进行操作。此时 Q=(P1,P2,P5)=(1,4,5),所以 P=(Q1,P3,P4,Q2,Q3)=(1,2,3,4,5)。因此只需一次操作即可将 P 排成升序。
样例解释 2
可以证明,无法在 2×103 次操作内将 P 排成升序。
样例解释 3
不要求操作次数最小化。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?