#P16230. [Ceoi2026]Vim

[Ceoi2026]Vim

题目描述

Vim 是一款功能强大但操作方式十分特别的文本编辑器。

本题中,编辑器内始终有一个光标,光标位于某个字符上。初始时:

  • 文本中恰好只有一个字符 -
  • 光标位于这个字符上;
  • 剪贴板为空。

你的目标是让文本最终恰好由 nn 个连续的字符 - 组成。

你可以使用下面四种命令。

命令 h

若光标位于文本的第一个字符上,则什么也不做;否则把光标向左移动一个字符。

命令 l

若光标位于文本的最后一个字符上,则什么也不做;否则把光标向右移动一个字符。

命令 Y

把从光标当前位置开始,一直到文本末尾的整个字符串复制到剪贴板中,并覆盖剪贴板原有内容。

若光标位于第一个字符上,则会复制整个文本。

命令 P

把剪贴板中的文本插入到光标所在字符的前面,并把光标移动到本次插入文本的最后一个字符上。剪贴板内容不变。

若剪贴板为空,则什么也不做。

请计算从初始状态出发,得到恰好 nn 个字符 - 所需的最少命令数,并输出一组达到该最少命令数的命令序列。

输入格式

第一行包含整数 tt,表示测试数据组数。

接下来 tt 行,每行包含一个整数 nn,表示目标文本长度。

输出格式

对每组测试数据输出一行:

  • 先输出最少命令数;
  • 再输出一组具有该长度、且能够得到恰好 nn 个字符的命令序列。

命令序列由字符 hlYP 组成。

当最少命令数为 00 时,命令序列为空。

数据范围

  • 1t1001\le t\le100
  • 1n1071\le n\le10^7

子任务

若最少命令数正确,但没有输出命令序列,或者输出的序列不正确,则该子任务只能获得一半分数。

子任务 分值 附加限制
1 20 n100n\le100
2 8 n1000n\le1000
3 18 n104n\le10^4
4 n105n\le10^5
5 n106n\le10^6
6 无附加限制

样例

输入

2
21
2

输出

10 YPYPhPYPPP
2 YP

样例解释

在下面的表格中,使用 = 表示光标当前所在的字符 -

步骤 命令 屏幕 剪贴板
0 =
1 Y -
2 P =-
3 Y --
4 P -=--
5 h =---
6 P -=----
7 Y -----
8 P -----=-----
9 ---------=------
10 -------------=-------

最终文本长度为 2121