小红删数字
题号:NC255100
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红有一个数组,她需要对数组操作 n - 1 次,每次操作有两种选择:
1. 选择数组的最后两个数,记 xy,将它们从数组中删除,然后将 x + y 的个位数放回数组的最后。
2. 选择数组的最后两个数,记 xy,将它们从数组中删除,然后将 x \times y 的个位数放回数组的最后。

例如,对于数组 [1, 2, 3, 4],选择第一种操作后,数组变为 [1, 2, 7],选择第二种操作后,数组变为 [1, 4]

小红一共操作了n - 1 次,显然操作后数组只剩下了一个数。小红想知道,这个数等于 0, 1, \dots, 9 的方案数分别为多少,答案可能很大,你只需要输出答案对 10^9 + 7 取模的结果。

小红想知道,经过 n - 1 次操作后,结果为 0, 1, \dots, 9 的方案数分别为多少,答案可能很大,你只需要输出答案对 10^9 + 7 取模的结果。

输入描述:

一个正整数n。代表数组的长度。
一行n个正整数a_1, a_2, \dots, a_n,代表初始数组。
1\leq n \leq 200000
1\leq a_i \leq 10^9

输出描述:

一行10个整数,第i个数代表结果为i的方案数。
示例1

输入

复制
4
1 2 3 4

输出

复制
1 0 0 0 3 3 0 0 0 1