[ARC086F] Shift and Decrement

题意翻译

黑板上现在有 $N$ 个非负整数,第 $i$ 个数字是 $A_i$。 你现在可以以执行最多 $K$ 次操作,两种操作的执行顺序任意: - 操作 A:将每个数字 $X$ 变成 $\left \lfloor \dfrac{X}{2} \right \rfloor$。 - 操作 B:将每个数字 $X$ 变成 $X-1$。当存在一个数为零时不能执行该操作。 你现在需要算出黑板上数字的所有可能情况数,对 $10^9+7$ 取模。 - $ 1 \leq N \leq 200 $ - $ 1 \leq A_i \leq 10^{18} $ - $ 1 \leq K \leq 10^{18} $

题目描述

[problemUrl]: https://atcoder.jp/contests/arc086/tasks/arc086_d 黒板に $ N $ 個の非負整数 $ A_1,\ ...,\ A_N $ が書かれています. すぬけ君は,次のいずれかの操作を,好きな順番で,合わせて $ K $ 回まで行うことができます. - 操作 A: 黒板に書かれている整数すべてを,$ 2 $ で割って小数点以下を切り捨てたものに置き換える. - 操作 B: 黒板に書かれている整数すべてを,$ 1 $ を引いたものに置き換える.ただし,黒板に $ 0 $ が一つでも書かれている場合はこの操作を行うことができない. すぬけ君が操作を行った後の黒板上の整数の書かれ方として,異なるものは何通りあるかを $ mod\ 1,000,000,007 $ で求めてください.

输入输出格式

输入格式


入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ A_1 $ $ A_2 $ $ ... $ $ A_N $

输出格式


すぬけ君が操作を行った後の黒板上の整数の書かれ方として,異なるものは何通りあるかを $ mod\ 1,000,000,007 $ で出力せよ.

输入输出样例

输入样例 #1

2 2
5 7

输出样例 #1

6

输入样例 #2

3 4
10 13 22

输出样例 #2

20

输入样例 #3

1 100
10

输出样例 #3

11

输入样例 #4

10 123456789012345678
228344079825412349 478465001534875275 398048921164061989 329102208281783917 779698519704384319 617456682030809556 561259383338846380 254083246422083141 458181156833851984 502254767369499613

输出样例 #4

164286011

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 200 $ - $ 1\ \leq\ A_i\ \leq\ 10^{18} $ - $ 1\ \leq\ K\ \leq\ 10^{18} $ - $ A_i,\ K $ は整数 ### Sample Explanation 1 黒板上の整数の書かれ方としては,$ (1,\ 1),\ (1,\ 2),\ (2,\ 3),\ (3,\ 5),\ (4,\ 6),\ (5,\ 7) $ の $ 6 $ 通りがあります. 例えば,$ (1,\ 2) $ は操作 A, 操作 B の順に操作を行うことで得ることができます.