0%

UVA 613 Numbers That Count 翻译

题目描述

“Kronecker’s Knumbers” 是一个专门生产塑料数字板的小公司。公司的老版和唯一的员工 Klyde Kronecker 通过维护库存簿来跟踪他使用的每种类型的数字。例如:他刚刚做了一个包含了电话号码 $5553141$,他就会在库存簿的一列上写下 $5553141$,并在下一列他会列出他所使用的数字及其个数:两个 $1$,一个 $3$,一个 $4$,三个 $5$。(没有用到的数字不会出现在记录中)他会以缩写的形式书写库存簿,比如:$21131435$,他将这种形式称为”记录序列“。

一天,Klyde 对“31123314”的记录感到十分惊讶——它包含了:三个 $1$,一个 $2$,三个 $3$,一个 $4$!他称呼这样的数为“自记录数”。他想找出哪些数是“自记录数”,或者会进入一个“记录循环”(循环的定义会在下面说明)。现在,你被 Klyde 雇佣来完成这项调查。

你会得到一个非负数 $n$ ,他的“记录序列”是 $c_1d_1c_2d_2…c_kd_k$ , 其中 $c_i$ 和 $d_i$ 均为非负整数,同时 $d_i$ 满足 $0 \le d_1 < d_2 < … < d_k \le 9$。比如:对于 $5553141$ 来说,我们认为 $c_1 = 2,d_1 = 1,c_2 = 1,d_2 = 3…$,所以它的“记录数”就是 $21131435$,又比如 $1000000000000$ 的“记录数”就是 $12011$(十二个 $0$,一个 $1$)。

如果一个整数 $n$ 与其“记录数”相等,则我们称 $n$ 为一个“自记录数”。如果一个整数 $n$ 在 $j(j \ge 1 )$ 次“记录迭代”后成为了一个“自记录数”,我们就称 $n$ 在 $j$ 次后成为了“自记录数”。比如:$21221314$ 的“记录数”是 $31321314$,$31321314$ 的“记录数”是 $31123314$,而 $31123314$ 是一个”自记录数“,所以我们称 $211221314$ 在 $2$ 次后成为了”自记录数“。

最后,如果一个整数 $n$ 在 $j(j \le 0)$ 次”记录迭代“后的值等于其在 $j+k(k \le 2)$ 次”记录迭代后“的值,那么我们称 $n$ 进入了一个长度为 $k$($k$ 是符合条件的最小值) 的”自记录循环“。比如:$314213241519$ 的”记录数“是 $412223241519$,$412223241519$ 的”记录数“是 $314213241519$,所以我们称 $314213241519$ 进入了一个长度为 $2$ 的”记录循环“(在本例中 $j = 0$)。

请你编写一个程序,输入一个正整数序列,指出每个数是”自记录数“(n is self-inventorying),或者它在 $j$ 次后成为了”自记录数“(n is self-inventorying after j steps),或者它进入了长度为 $k$ 的”记录循环“(n enters an inventory loop of length k),或者它在 $15$ 次迭代后不符合以上的任意情况(n can not be classified after 15 iterations)。

输入数据

输入是一个由多个非负整数组成数列,每行一个数,由 $-1$ 代表结束,没有前导零。

输出数据

对于每一个输入的正整数 $n$,输出以下任意一条消息($n$ 是输入的正整数,$j$ 是一个正整数,$k$ 是一个大于 $1$ 的正整数):

text
1
2
3
4
n is self-inventorying
n is self-inventorying after j steps
n enters an inventory loop of length k
n can not be classified after 15 iterations

输入样例

text
1
2
3
4
5
6
22
31123314
314213241519
21221314
111222234459
-1

输出样例

text
1
2
3
4
5
22 is self-inventorying
31123314 is self-inventorying
314213241519 enters an inventory loop of length 2
21221314 is self-inventorying after 2 steps
111222234459 enters an inventory loop of length 2