CF1992E Novice's Mistake
题目描述
K1o0n 人生中的的第一个编程题这样的:Noobish_Monk 有 $n$ 个朋友,在他生日这天,他的朋友们每人送了他 $a$ 个苹果作为 K1o0n 的生日礼物。K1o0n 十分高兴,在他的生日派对上拿出了 $b$ 个苹果招待他的朋友们。请问:「K1o0n 还有几个苹果?」
这个题很简单,只需要计算 $n\times a-b$ 即可。K1o0n 写了一个解,但是不小心把 $n$ 的值当成了字符串 `string` 类型!所以 $n\times a−b$ 按照字符串的计算规则进行了计算,具体说来:
- 对于 $a\times b=c$ ,其中 $a,c$ 为字符串,$b$ 为整数 `int` 类型,计算方式为:
$$a\times b=\underbrace{a+a+...+a+a}_{b\text{ 个 }a}$$
- 对于 $a-b=c$ ,其中 $a,c$ 为字符串, $b$ 为整数 `int` 类型,计算方式是去掉 $a$ 的后 $b$ 个字符。如果 $b\ge a \text{ 的长度}$,那么结果为空串。
K1o0n 的的机房教练 ErnKor 看到后,很好奇对于一个固定的 $n$ ,有多少对 $(a,b)$ 能使 K1o0n 的错误代码输出正确的结果。作为 ErnKor 的得意门生,他将这个问题交给了你。
输出正确的答案指 K1o0n 的代码输出了一个只包括数字的非空字符串,且转为数字后与正确答案相同。
输入格式
本题有多组测试样例。
第一行有一个数字 $t$ ——测试样例的数量。
对于每组测试样例,只有一个数字 $n$ 。含义与题目描述一致。
输出格式
对于每组测试样例:
第一行有一个数字 $x$ 表示有 $x$ 组 $(a,b)$ 能使 K1o0n 的错误代码输出正确结果。
接下来 $x$ 行,每行有两个数字 $a_i,b_i$ 含义与题目描述一致,按 $a$ 升序排列。
如果没有满足条件的 $(a,b)$ 的话。您只需要输出一个 $0$ 。
说明/提示
#### 数据范围及约定:
对于 $100\%$ 的数据:$1\le t,n\le 100,\quad 1\le a\le 10^4,\quad 1\le b\le\min(10^4,a\cdot n)$ 。
#### 样例解释
在测试样例一的第一组中,$n=2,a=20,b=18$ :
$$
\begin{split}
2\times 20-18&="2"\times20-18\\
40-18&="22222222222222222222"-18\\
22&="22"\\
\end{split}
$$
注:本题题目翻译有误,请一定使用多语言题面功能
本翻译由 @ssdhnd 提供。