CF145C Lucky Subsequence

题目描述

Petya 非常喜欢幸运数字。众所周知,幸运数字是指十进制表示中只包含幸运数字 $4$ 和 $7$ 的正整数。例如,$47$、$744$、$4$ 是幸运数字,$5$、$17$、$467$ 不是。 Petya 有一个包含 $n$ 个整数的序列 $a$。 序列 $a$ 的子序列指的是可以通过移除零个或多个元素从 $a$ 获得的序列。 如果两组子序列中元素的下标集合不同,则认为它们是不同的子序列。也就是说,比较子序列时只关心选取元素的下标,不关心元素值。因此,长度为 $n$ 的序列有恰好 $2^n$ 个不同的子序列(包括空序列)。 如果一个子序列的长度恰好为 $k$,且其中不包含两个相同的幸运数字(不幸运的数字可以重复任意多次),则认为该子序列是幸运子序列。 请你帮助 Petya 求出序列 $a$ 中不同幸运子序列的数量。由于结果可能很大,请输出对质数 $1000000007$($10^9+7$)取模后的结果。

输入格式

第一行包含两个整数 $n$ 和 $k$,满足 $1 \leq k \leq n \leq 10^5$。 第二行包含 $n$ 个整数 $a_i$,$1 \leq a_i \leq 10^9$ —— 表示序列 $a$。

输出格式

输出一个整数,表示答案对 $1000000007$($10^9+7$)取模的结果。

说明/提示

在第一个样例中,所有 $3$ 个长度为 $2$ 的子序列都被认为是幸运的。 在第二个样例中,一共有 $4$ 个幸运子序列。它们所选的下标集合分别是(下标从 $1$ 开始计):${1,3}$、${1,4}$、${2,3}$ 和 ${2,4}$。 由 ChatGPT 5 翻译