/ WHOJ / 题库 /

[NOIP2006 普及组] Jam 的计数法/厄斯索斯人的数学

[NOIP2006 普及组] Jam 的计数法/厄斯索斯人的数学

题目描述

在古老的厄斯索斯大陆生活中一群原住民,他们不认识数字,但是他们认识 \(26\) 个英文字母,因为他们发明了一种用小写英文字母来进行计数的方法:

\(1.\) 英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。

\(2.\) 进行计数前会指定使用过的字母范围,例如,指定 \(2\) 到 \(10\),那表示只能使用 \(b,c,d,e,f,g,h,i,j\) 这 \(9\) 个字母,如果再规定位数为 \(5\),那么也就是说每次要用 \(5\) 个字母才能表示一个数。

\(3.\) 在表示一个数时,字母是不能重复出现的(例如:\(bbcde\) 这种就不合法,因为存在两个 \(b\))。

\(4.\) 组成每个数的字母从左到右是严格递增的(例如:\(cbdef\) 就不合法,因为 \(c\) 比 \(b\) 大,不能在 \(b\) 的左边出现)。

经过以上限定后,数与数之间是大小关系的也就确定了。例如在紧邻数 \(bdfij\) 之后的那个数应该是 \(bdghi\)。

现在告诉你字母的使用范围和规定的位数,并给定一个用字母构成的数,请你依次从小到大输出紧邻该数后面的 \(5\) 个数,如果后面没有那么多数可供输出,那么有几个就输出几个。

格式

输入格式

输入第 \(1\) 行 \(3\) 个正整数 \(a,b,w\),其中 \(a,b\) 表示可以使用的字符的范围区间,\(w\) 表示规定表示一个数的位数。

输入第 \(2\) 行一个长度为 \(w\) 的并且是有区间 \([a,b]\) 之间的字母构成的字符串 \(s\),表示一个数。

输出格式

输出最多 \(5\) 行,每行输出一个数,依次输出紧邻在 \(s\) 后面的 \(5\) 个数,如果没有 \(5\) 个,那就有几个输出几个。

样例1

样例输入1

1 5 3
abc

样例输出1

abd
abe
acd
ace
ade

来源

地址:\(\text{Online~Judge}\)
作者:\(hoogy\)
模拟赛\(T3\)