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 提供。