醒来
题目背景
“那羡慕的烟火去哪了,那信任的朋友疏远了。
我年幼时坚持过什么,你们还记不记得。”
回想自己儿时的样子,已和现在大不相同了;但想想昨天的自己,却与今天没什么差异。这不经意的改变,让我们已经是另一个样子了。
题目描述
赫尔德用一个长为 $r-l+1$ 的数列 $a$ 来描述自己性格的变化。但赫尔德记忆不好,她已经记不清 $a$ 了,只记得非负整数 $l,r$,其中 $l<r$。
不过,她还记得:
1. $l\le a_i\le r$,且 $a_i$ 互不相同。换言之,$a$ 是一个 $l\sim r$ 的排列。
2. 对于所有 $1\le i\le r-l$,有 $\operatorname{popcount}(a_i \mathbin{\mathrm{xor}} a_{i+1})=1$。换言之,$a$ 中相邻的两个数二进制下只相差一位。
请你告诉她一个可能的 $a$,或告诉她其实不存在这样的 $a$。
输入输出格式
输入格式
仅一行,两个非负整数 $l,r$。
输出格式
第一行,若有解输出 `Yes`,若无解则输出 `No`。不区分大小写。
若你输出了 `Yes`,则你可以用以下两种格式之一输出你的构造:
1. 输出一行 $r-l+1$ 个数,表示你构造的排列。
3. 先输出一个数,表示你构造排列的第一个数。接下来输出一个长为 $r-l$ 的字符串,对于第 $i$ 个字符,若你构造排列第 $i$ 与 $i+1$ 个数相差了 $2^k$,则你应该输出第 $k+1$ 个小写英文字母,即 `(char)('a'+k)`。
**注意,若你使用格式 1 输出,你可能无法通过最后两个子任务。若您获得了 UKE 的评测结果,请考虑修改输出答案的格式。**
---
**【评分方法】**
本题采用**自定义校验器**检测你的输出。
若你对解的存在性判断错误,你无法获得任何分数。
若你对解的存在性判断正确,你可以获得 $40\%$ 的分数;若解不存在或你给出了一组正确的构造,则你可以获得剩下 $60\%$ 的分数。
输入输出样例
输入样例 #1
0 7
输出样例 #1
Yes
0 1 3 2 6 7 5 4
输入样例 #2
0 7
输出样例 #2
yEs
0 abacaba
输入样例 #3
0 7
输出样例 #3
yes
输入样例 #4
3 5
输出样例 #4
No
说明
**【样例解释 \#1、\#2、\#3】**
样例输出 \#1 和 \#2 对应同一个数列,即 $\{ 0, 1, 3, 2, 6, 7, 5, 4 \}$,它们均能获得该测试点 $100 \%$ 的分数。
样例输出 \#3 能获得该测试点 $40 \%$ 的分数。
----
**【数据范围】**
对于所有数据,保证 $0\le l<r\le 10^7$。
设 $n=r-l+1$。
$$
\def{\arraystretch}{1.5}
\begin{array}{c|c|c|c}\hline
\textbf{子任务编号}&\bm{~~~~~~~~n\le~~~~~~~~}&~~~~\textbf{特殊限制}~~~~&\textbf{分数}\cr\hline
\textsf1 & 10& &9\cr\hline
\textsf2 & 20& &9 \cr\hline
\textsf3 & 10^5&\textsf{A, B}&10\cr\hline
\textsf4 & 10^5 &\sf A&10\cr\hline
\textsf5 & 2000& \textsf C&25 \cr\hline
\textsf6 & 5\times 10^5&\textsf D&20\cr\hline
\textsf7 & 3\times 10^6&&10\cr\hline
\textsf8 & &&7\cr\hline
\end{array}
$$
$\textsf A$:保证 $l=0$。
$\textsf B$:保证 $n$ 是 $2$ 的整数次幂。
$\textsf C$:保证 $l$ 是偶数,$r$ 是奇数。
$\textsf D$:本子任务有 5 个测试点,从所有 $n\ge 2\times 10^5$ 且有解的数据中随机生成。
---
即使一直在改变,赫尔德也许仍似儿时的自己。