#YDRB011D. 数位 (digit)

数位 (digit)

题目背景

T. B. D.

题目描述

给定一个整数 kk,对于任意正整数 nn,先将 nn 转化为 kk 进制,再将其转化为字符串,记结果为 f(n)f(n)

例如,k=3k=3 时,f(10)=101f(10)=\texttt{101}

接下来,递归地定义 sns_n 如下:

  • 定义 s0s_0 为空字符串;
  • 对于 n1n\ge1,定义 sn=sn1f(n)s_n=s_{n-1}\odot f(n)本题中 \odot 表示字符串拼接)。

例如,k=3k=3 时,s4=121011s_4=\texttt{121011}

再令无限长字符串

$$S=s_1\odot s_2\odot s_3\odot\cdots=\bigodot_{i=1}^\infty s_i$$

例如,k=10k=10 时,S=112123123412345S=\texttt{112123123412345}\cdots

现在有 qq 次询问,每次询问 SS 的第 dd 位上的数字。

输入格式

从文件 digit.in 中读入。

第一行两个整数 k,qk,q,表示进制数与询问数量。

接下来 qq 行,每行一个整数 dd,表示询问 SS 的第 dd 位上的数字。

输出格式

输出到文件 digit.out 中。

对于每个询问,输出一行一个整数,表示询问的答案。

输入输出样例

输入样例 1

10 2
3
8

输出样例 1

2
2

样例 1 说明

如题所述,k=10k=10 时,$S=\texttt{11}{\underline{\color{red}\texttt2}}\texttt{1231}{\underline{\color{blue}\texttt2}}\texttt{3412345}\cdots$。标红的为第 33 位,标蓝的为第 88 位。

样例 2

见下发压缩包中 digit2.in\textbf{\textit{digit2.in}}digit2.ans\textbf{\textit{digit2.ans}}

该样例符合测试点 121\sim 2 的限制。

样例 3

见下发压缩包中 digit3.in\textbf{\textit{digit3.in}}digit3.ans\textbf{\textit{digit3.ans}}

该样例符合测试点 353\sim 5 的限制。

样例 4

见下发压缩包中 digit4.in\textbf{\textit{digit4.in}}digit4.ans\textbf{\textit{digit4.ans}}

该样例符合测试点 686\sim 8 的限制。

说明

数据规模与约定

测试点 kk dd\le
121\sim2 =10=10 10310^3
353\sim5 =2=2 无特殊限制
686\sim8 =3=3
9109\sim10 无特殊限制

对于 100%100\% 的数据,有 2k102\le k\le 101q1001\le q\le 1001d1091\le d\le 10^9