#MNS20250203. 校园图书馆
校园图书馆
题目描述:
图书馆管理员需要将 N 本编号为 1…N(1≤N≤10^5)的图书整理成有序序列。当前图书按 b1, b2, b3,…,bn 的顺序摆放在书架上,管理员站在图书 b1 左侧。他的目标是让图书顺序变为 1,2,3,…,N,且图书 1 紧邻自己。 整理过程有严格规则:任何时刻,只有管理员正前方的第一本图书会响应指令。每次指令中,管理员可命令这本 图书向后移动 k 步(k 为 1 到 N-1 之间的任意整数)。移动时,该图书会经过后方 k 本图书,被经过的 k 本图书会整体向前移动,最终让指令图书插入到这 k 本图书之后的位置。 例如,若 N=4,初始图书顺序为(管理员在左侧): 管理员:4 3 2 1 此时只有第一本图书 “4” 响应指令。当管理员命令它向后移动 2 步后,队伍顺序会变成: 管理员:3 2 4 1 现在只有第一本图书 “3” 响应指令,继续操作直到图书按 1,2,3,4 排序。 请帮助管理员找到最少操作次数的指令序列,完成图书整理。
输入格式:
输入的第一行包含 N。第二行包含 N 个空格分隔的整数:b1, b2, b3,…,bn,表示图书的起始顺序。
输出格式:
输出的第一行包含一个整数 K,为将图书整理好所需的最小操作次数。第二行包含 K 个空格分隔的 整数,c1, c2,…,c_K,每个数均在 1…N-1 之间。如果第 i 次操作管理员命令面向他的图书向队伍 后移动 ci 步,那么 K 次操作过后图书应该排好顺序。
样例:
4
1 2 4 3
3
2 2 3
提示
相关
在下列比赛中: