C1181 [Contest #1]+1 复读

内存限制:256 MB 时间限制:2000 ms

题目描述

在许多讨论算法的 qq 群里面,很多人都喜欢复读。在这里复读是重复上一个人所说的一模一样的话的意思。

但也有很多人讨厌看到其他人一直在复读,觉得这会给其他人带来困扰,所以有些 qq 群会禁止大家复读。

于是这些喜欢复读的人又发明了各种复读的变形方式,+1 复读就是其中一个例子。

这里举个 +1 复读的例子,当有个人说:"羡慕+1",则接下来喜欢复读的人会接着说:"羡慕+2", "羡慕+3", "羡慕+4", ...

很喜欢复读的 dreamoon 看到这个现象后想到了一个问题如下:

对于给定一个由数字字符 '0' 至 '9' 组成的字符串,若选择其中一个子字符串组成的数字加 $1$ 后并取代原子字符串,有多少种可能的不同结果?

原字符串的开头允许多余的 '0' ,但选取来要加 $1$ 的子字符串的开头不能有多余的 '0' 。

观看提示可帮助你更了解题意。

输入格式

第一行有一个正整数 $T$ ($T \le 2 \times 10^5$),代表有几组数据。

接着每组数据一行,包含一个由数字字符 '0' 至 '9' 所组成的字符串,其长度为不超过 $2 \times 10^5$ 的正整数。

全部数据的字符串总长度不超过 $10^6$。

输出

对于每组数据,输出一个整数于一行代表答案。

样例

样例输入 1

4 0 19 921 100

样例输出 1

1 3 3 3

提示

对于样例中第二组数据,有三种可能子字符串选择方式,分别是 '1', '9', '19',加 $1$ 后分别是 '2', '10', '20',取代回原字串后分别是 '29', '110', '20',总共有三种不同可能。

对于样例中第三组数据,有六种可能子字符串选择方式,分别是 '9', '2', '1', '92', '21', '921',加 $1$ 后分别是 '10', '3', '2', '93', '22', '922',取代回原字串后分别是 '1021', '931', '922', '931', '922', '922',总共有三种不同可能。

对于样例中第四组数据,有五种可能子字符串选择方式,分别是 '1', '0', '0', '10', '100',加 $1$ 后分别是 '2' , '1', '1', '11', '101',取代回原字串后分别是 '200', '110', '101', '110', '101',总共有三种不同可能。