编程题
### 问题描述 苏苏最近在研究字符串,她认为对于一个字符串(字符串仅由数字 `0-9` 构成,且字符串不能有前导零),如果字符串满足以下条件,则称这个字符串为标准字符串: 对于长度为 $k(k \gt 0)$ 的字符串 $S$,满足 $S_{1}-S_{0}=S_{2}-S_{1}=\cdots=S_{k-1}-S_{k-2}$。 特别的,当 $k=1$ 时,则也认为这个字符串是标准字符串。 现在,苏苏给你 $Q$ 组长度为 $N(N \geq 1)$ 的字符串,对于每组字符串 $T_i$,请你在所有长度为 $1 \to M(M \geq 1)$ 的标准字符串中,找出第一个大于 $T_i$ 的标准字符串,如果不存在这样的字符串则输出 $-1$。 注:字符串的大小比较规则是基于字符的字典顺序进行比较。 ### 输入格式 第一行输入三个正整数 $M,N,Q$,分别表示所有标准字符串的最大长度,每组字符串 $T_i$ 的长度,以及询问的字符串数量。 接下来 $Q$ 行,每行输入一个长度为 $N$ 的字符串 $T_i$,$T_i$ 表示第 $i+1$ 行询问的字符串。 ### 输出格式 输出共 $Q$ 行,每行输出一个字符串 $ans_i$,表示在所有长度为 $1 \to m$ 的标准字符串中第一个大于 $T_i$ 的标准字符串,如果不存在这样的字符串则输出 $-1$。 ### 样例输入 ```text 2 3 3 123 999 666 ``` ### 样例输出 ```text 13 -1 67 ``` #### 样例解释 长度为 $1 \to 2$ 的标准字符串共有 $99$ 个,包括但不限于 `1`,`2`,`5`,`12`,`13`,`20`,`21`,`67`,`79`,`81`,`99` 等。 在长度为 $1 \to 2$ 的标准字符串中第一个大于字符串 `123` 的标准字符串是 `13`。 在长度为 $1 \to 2$ 的标准字符串中不存在大于字符串 `999` 的标准字符串,所以输出 `-1`。 在长度为 $1 \to 2$ 的标准字符串中第一个大于字符串 `666` 的标准字符串是 `67`。 ### 评测数据规模 对于所有的评测数据,$1 \leq m,n,q \leq 5 \times 10^3$。
查看答案
赣ICP备20007335号-2