问题2308--元旦礼物

2308: 元旦礼物

[命题人 : ]
时间限制 : 1 sec  内存限制 : 128 MB

提交

题目描述

要到元旦了,给你们送一个礼物:一个字符串。

该字符串是一个只含小写字母的字符串 $s$。对于一个长度为 $x$ 的只含小写字母的字符串 $s$,我们定义 $s$ 的“上一个字符串”是:所有长度为 $x$ 且仅含小写字母的字符串按字典序排列后,恰好排在 $s$ 之前一个的字符串。

例如,字符串 $bcdbcd$ 的“上一个字符串”是 $bcdbcc$,而 $aaaaaa$ 的“上一个字符串”不存在。

提示:长度为$2$的所有长度为$x$且仅含小写字母的字符串按字典序排列后为$aa,ab,ac,ad,ae…..az,ba,bb,bc……zx,zy,zz$。

现在,有 $q$ 次询问,每次询问给出一个区间 $\left [ l, r \right ] $,查询:$s$ 的第 $l$ 个到第  $r$ 个字符组成的字符串的“上一个字符串”是否在 $s$ 中出现?

如果查询区间对应的字符串不存在“上一个字符串”,也算作“上一个字符串”没有在 $s$ 中出现。

$1\le \left | s \right | \le 200;1\le q\le 100;1\le l\le r\le \left | s \right | ;$

注:$\left | s \right | $指字符串$s$长度。

输入

第一行是一个字符串,表示收到的字符串  $s$
第二行有一个整数,表示询问的次数 $q$。
接下来 $q$ 行,每行两个整数,表示一次询问的 $l,r$。

输出

对于每次询问,输出两行,每行一个字符串。
对于每次询问的第一行输出,请输出对应字符串的“上一个字符串”。如果“上一个字符串”不存在,则输出NULL。
对于每次询问的第二行输出,如果对应字符串的“上一个字符串”在 $s$ 中出现了,请输出 Happy New Year!,否则请输出 Happy Chinese New Year!。

样例输入 Copy

bcdbccaacbzz
5
1 3
5 8
1 1
11 12
7 7

样例输出 Copy

bcc
Happy New Year!
cbzz
Happy New Year!
a
Happy New Year!
zy
Happy Chinese New Year!
NULL
Happy Chinese New Year!