#B0130. 数字积木

数字积木

题目描述

Aki 面前有 bb 块数字积木。

每一块积木上都写着完全相同nn 个数字,记为 a1,a2,,ana_1,a_2,\dots,a_n
Aki 需要从第 11 块到第 bb 块中,每块恰好选出一个数字,并按顺序拼接成一个长度为 bb 的十进制整数。

例如,若从前两块中依次选出数字 1,21,2,那么前两位就组成了整数 12

现在 Aki 会把这个整数对 xx 取模。你需要求出:有多少种选法,能够使最终结果恰好等于 kk

由于答案可能很大,请对 109+710^9+7 取模输出。

  • 每一块积木上的数字内容完全相同;
  • 如果某个数字在一块积木中出现了多次,那么选择它的不同位置要算作不同方案;
  • 输入保证 1ai91\le a_i\le 9

输入格式

第一行四个整数 n,b,k,xn,b,k,x

第二行 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n,表示每一块积木上写着的数字。

  • 2n500002\le n\le 50000
  • 1b1091\le b\le 10^9
  • 0k<x1000\le k<x\le 100
  • 1ai91\le a_i\le 9

输出格式

输出一个整数,表示满足条件的方案数,对 109+710^9+7 取模后的结果。

12 1 5 10
3 5 6 7 8 9 5 1 1 1 1 5
3

Hint

样例解释: 这里只有一块积木,因此最后得到的数就是你选出的那个数字本身。 想要模 1010 后得到 55,就必须选到数字 55
而这一块积木中一共有 33 个位置写着数字 55,所以答案为 33