P13033 [GCJ 2021 #1C] Roaring Years

题目描述

2021 年正在发生一件百年未遇的事情。与 1920 年一样,2021 年也是一个**咆哮年份**。一个正整数 $y$ 所代表的年份被称为咆哮年份,当且仅当 $y$ 的十进制表示(不含前导零)是两个或更多个不同的连续正整数的十进制表示(不含前导零)按递增顺序连接而成。在这个定义下,2021 是一个咆哮年份,因为它是 20 和 21 的连接。 ![](https://cdn.luogu.com.cn/upload/image_hosting/k37unt4l.png) 其他咆哮年份的例子包括 12(1 和 2)、789(7、8、9)、910(9 和 10)、1234(1、2、3、4)以及 9899100(9899 和 100)。2020 不是咆哮年份,因为唯一能连接成 2020 的两个或多个正整数列表是 $[20, 20]$,而它们不是连续的整数。类似地,2019 只有三种可能的分解方式:$[20, 1, 9]$、$[201, 9]$ 和 $[20, 19]$。前两种不是连续整数,而第三种虽然连续但不是严格递增的,因此 2019 也不是咆哮年份。再举个例子,778 不是咆哮年份,因为 $[7, 78]$ 和 $[77, 8]$ 不是连续的整数,而 $[7, 7, 8]$ 中的数字不唯一。 给定当前年份(可能是咆哮年份,也可能不是),找出下一个咆哮年份。

输入格式

输入的第一行包含测试用例的数量 $\textbf{T}$。随后是 $\textbf{T}$ 行,每行一个测试用例,包含一个整数 $\textbf{Y}$,表示当前年份。

输出格式

对于每个测试用例,输出一行 `Case #x: z`,其中 $x$ 是测试用例编号(从 1 开始),$z$ 是严格大于 $\textbf{Y}$ 的第一个咆哮年份。

说明/提示

**样例解释** 注意最后一个样例,102 不是咆哮年份,因为 $[10, 2]$ 不是连续整数,且不能将 2 写作 $02$(带前导零)来构造 $[1, 02]$。 **数据范围** - $1 \leq \textbf{T} \leq 100$。 **测试集 1(15 分,可见判定)** - $1 \leq \textbf{Y} \leq 10^6$。 **测试集 2(20 分,隐藏判定)** - $1 \leq \textbf{Y} \leq 10^{18}$。 翻译由 DeepSeek V3 完成