CF149B Martian Clock
题目描述
彼得雅独自在家,为了消磨时间,他偷偷在网上观看了禁播电影。你也许会说:“这可不是绅士的行为!” 当然,但也不要太苛责这个孩子。在他所在的国家,关于火星人和其他外星文明的电影都被禁止了。对彼得雅来说,这很不公平,因为他非常喜欢那些有激光和机器人冒险故事。
今天他正在观看一部名为“R2:D2”的轰动大片。这个“R2:D2”到底是什么意思呢?也许它代表用火星数字系统记载的火星时间。彼得雅知道,火星上的计时方式和地球上一样(也就是一天有 $24$ 小时,每小时有 $60$ 分钟)。时间的写法为“$a$:$b$”,其中字符串 $a$ 表示小时数(从 $0$ 到 $23$),字符串 $b$ 表示分钟数(从 $0$ 到 $59$)。唯一彼得雅不知道的是,这个火星时间的数字采用了什么进制。
你的任务是:输出所有能够合理表达为时间“$a$:$b$”的进制。
输入格式
第一行包含一个字符串,格式为“$a$:$b$”(无引号)。其中 $a$ 是一个非空字符串,由数字和大写拉丁字母组成,表示小时数。$b$ 也是一个非空字符串,由数字和大写拉丁字母组成,表示分钟数。$a$ 和 $b$ 的长度均为 $1$ 到 $5$ 个字符。请注意,$a$ 和 $b$ 可能包含前导零,这对结果无影响(例如,十进制下的“008:1”是正确的时间表示)。
我们认为字符 $0,1,\ldots,9$ 分别对应数制中的各数字,字符 $A,B,\ldots,Z$ 分别对应数字 $10,11,\ldots,35$。
输出格式
请输出所有能使时间“$a$:$b$”合法的进制,按从小到大顺序输出。数字之间用空格或换行分隔。如果没有任何进制能表达为合法时间,请输出单个整数 $0$。如果有无限多个进制都可以表示该时间,请输出单个整数 $-1$。
注意:在火星上,任何大于 $1$ 的正整数进制都可以作为进位制使用。
说明/提示
让我们来看第一个样例。“11:20”可以在三进制下视为时间 $4:6$,也可以在十六进制下视为时间 $17:32$。
再看第二个样例。“2A:13”在任何进制下都不是合法时间。例如,在 $11$ 进制下,该字符串代表时间 $32:14$,这在常规计时下并不正确。
第三个样例,“000B:00001”可以在无限多种进制下作为合法时间。例如,任取 $12$ 及以上进制均满足要求。
由 ChatGPT 5 翻译