P1467 [USACO2.2] 循环数 Runaround Numbers

题目描述

循环数是那些不包括 $0$ 且没有重复数字的正整数(比如 $81362$),并且还应同时具有一个有趣的性质—— 如果你从最左边的数字开始(在 $\color{red}{8}\color{black}1362$ 中是 $8$)向右数这个数字对应都次数(如果数到了最右边就回到最左边;在 $\color{red}{8}\color{black}1362$ 中是 $8$ 次),你会停止在另一个新的数字(在 $\color{red}{8}\color{black}1362$ 中是 $\color{red}8\color{black}\to 1\to 3\to 6\to 2\to 8\to 1\to 3\to \color{red}6$;如果停在一个相同的数字上,这个数就不是循环数)。 重复这样做,如果能在经过每个数位恰好一次后回到最左边,那么这个正整数就是循环数。 仍然以 $81362$ 为例,以下模拟过程证明了 $81362$ 是循环数: $$\color{red}8\color{black}\to 1\to 3\to 6\to 2\to 8\to 1\to 3\to \color{red}6$$ $$\color{red}6\color{black}\to 2\to 8\to 1\to 3\to 6\to \color{red}2$$ $$\color{red}2\color{black}\to 8\to \color{red}1$$ $$\color{red}1\color{black}\to \color{red}3$$ $$\color{red}3\color{black}\to 6\to 2\to \color{red}8$$ **任务:** 给你一个正整数 $m$,找出最小的比 $m$ 大的循环数 $m'$。 数据保证 $m' \le 2^{32}-1$。

输入格式

仅仅一行, 包括 $m$。

输出格式

仅仅一行,输出小的比 $m$ 大的循环数 $m'$。

说明/提示

对于 $100\%$ 的数据,$1\le m \le 10^9$。 USACO 2.2