CF355A.Vasya and Digital Root

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

Vasya and Digital Root

题目描述

Vasya 最近刚刚了解到什么是一个数的数字根,他决定与你分享他的知识。

我们设 S(n)S(n) 表示数字 nn 的各位数字之和,例如 S(4098)=4+0+9+8=21S(4098)=4+0+9+8=21。那么,数字 nn 的数字根定义如下:

  1. 如果 S(n)<10S(n)<10,则 dr(n)=S(n)dr(n)=S(n)
  2. 如果 S(n)10S(n)\geq 10,则 dr(n)=dr(S(n))dr(n)=dr(S(n))

例如,dr(4098)=dr(21)=3dr(4098)=dr(21)=3

Vasya 害怕大数,所以他处理的数字最大为 10100010^{1000}。对于所有不超过 10100010^{1000} 的数字,他已经证明 dr(n)=S(S(S(S(n))))dr(n)=S(S(S(S(n))))

现在,Vasya 希望快速找到数字根等于给定值的数。但他还没学会如何构造这种数,所以来请你帮忙。你的任务是:给定 kkdd,找到一个恰好有 kk 位数字(且不能有前导零),数字根等于 dd 的数;或者说明不存在满足条件的数。

输入格式

第一行包含两个整数 kkdd,其中 1k10001 \leq k \leq 10000d90 \leq d \leq 9

输出格式

输出一行,给出任意一个满足条件的数(无前导零);如果不存在这样的数,则输出“No solution”。

所选数字必须恰好为 kk 位。如果数字为 00,视为没有前导零。

说明/提示

对于第一个样例,dr(5881)=dr(22)=4dr(5881)=dr(22)=4

对于第二个样例,dr(36172)=dr(19)=dr(10)=1dr(36172)=dr(19)=dr(10)=1

由 ChatGPT 5 翻译

样例

4 4
5881
5 1
36172
1 0
0

在线编程 IDE

建议全屏模式获得最佳体验