Олимпиадный тренинг

Задача . E. Rock Is Push


Вы находитесь в левой верхней клетке \((1, 1)\) лабиринта размера \(n \times m\) клеток. Ваша цель — попасть в правую нижнюю клетку \((n, m)\). Вы можете двигаться только вправо и вниз по одной клетке за ход. Переход вправо из клетки \((x, y)\) ведёт в клетку \((x, y + 1)\), а переход вниз — в клетку \((x + 1, y)\).

В некоторых клетках лабиринта лежат камни. Когда вы перемещаетесь в клетку с камнем, камень сдвигается в следующую клетку по направлению движения. Если в следующей клетке также есть камень, он сдвигается дальше в том же направлении, и так далее.

Лабиринт окружён непроницаемыми стенами, поэтому ходы, в результате которых вы или камень выходят за границы лабиринта, невозможны.

Вычислите количество различных способов добраться от старта до цели по модулю \(10^9 + 7\). Два способа считаются различными, если существует клетка, посещённая в одном из способов, но не посещённая в другом.

Входные данные

В первой строке записано два целых числа \(n, m\) — размеры лабиринта (\(1 \leq n, m \leq 2000\)).

Следующие \(n\) строк описывают лабиринт. Каждая из этих строк содержит \(m\) символов. \(j\)-й символ \(i\)-й из этих строк равен «R», если клетка \((i, j)\) содержит камень, или «.», если клетка \((i, j)\) пуста.

Гарантируется, что стартовая клетка \((1, 1)\) пуста.

Выходные данные

Выведите одно целое число — количество различных способов добраться из клетки \((1, 1)\) в клетку \((n, m)\) по модулю \(10^9 + 7\).

Примечание

В первом примере нам нельзя (и не нужно) двигаться, поэтому единственный способ добраться посещает единственную клетку \((1, 1)\).

Во втором примере цель заблокирована и в неё нельзя попасть.

Иллюстрации к третьему примеру можно найти здесь: https://cfassets.m27.workers.dev/rounds/1225/index.html


Примеры
Входные данныеВыходные данные
1 1 1
.
1
2 2 3
...
..R
0
3 4 4
...R
.RR.
.RR.
R...
4

time 2000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя