В ряд расставлены $$$n$$$ коробок. Коробки пронумерованы от $$$1$$$ до $$$n$$$. В некоторых коробках лежит по одному шару, остальные пустые. Хотя бы в одной коробке есть шар и хотя бы одна коробка пустая.
За один ход вы обязаны выбрать коробку с шаром и соседнюю с ней пустую коробку и переложить шар из одной коробки в другую. Коробки $$$i$$$ и $$$i+1$$$ для всех $$$i$$$ от $$$1$$$ до $$$n-1$$$ считаются соседними друг с другом. Коробки $$$1$$$ и $$$n$$$ не соседние.
Сколько различных расположений шаров может быть после совершения ровно $$$k$$$ ходов? Два расположения называются различными, если есть хотя бы одна такая коробка, что в одном из них в ней есть шар, а в другом нет.
Так как ответ может быть достаточно большой, выведите его остаток от деления на $$$10^9+7$$$.
В первой строке записаны два целых числа $$$n$$$ и $$$k$$$ ($$$2 \le n \le 1500$$$; $$$1 \le k \le 1500$$$) — количество коробок и количество ходов.
Во второй строке записаны $$$n$$$ целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$a_i \in \{0, 1\}$$$) — $$$0$$$ обозначает пустую коробку, $$$1$$$ обозначает коробку с шаром. В последовательности есть хотя бы один $$$0$$$ и хотя бы одна $$$1$$$.
Выведите одно целое число — количество возможных различных расположений шаров после совершения ровно $$$k$$$ ходов, по модулю $$$10^9+7$$$.
4 1 1 0 1 0
3
4 2 1 0 1 0
2
10 6 1 0 0 1 0 0 0 1 1 1
69
В первом примере есть следующие возможные расположения:
Во втором примере есть следующие возможные расположения:
Название |
---|