Задача №2964. Попытка к бегству
Продолжительность олимпиады 3 часа (первые две пары).
Разбиение на команды:
1) Советск 2: Алексей Жуйков, Дмитрий Бут, Кирилл Лемтюгов
2) Individuals + CS KvsT: Олег Бабиченко, Александр Кузнецов, Тэдер Ярослав
3) Gymn32: Алла Натяганова, Юлия Кондратович, Иван Ларютин
4) Арина Чеверда
5) Роман Хуснутдинов
Узник пытается бежать из замка, который состоит из N×M квадратных комнат, расположенных в виде прямоугольника NxM. Между любыми двумя соседними комнатами есть дверь, однако некоторые комнаты закрыты и попасть в них нельзя. В начале узник находится в левой верхней комнате и для спасения ему надо попасть в противоположную правую нижнюю комнату. Времени у него немного, всего он может побывать не более, чем в N+M-1 комнате на своем пути, то есть перемещаться он должен только вправо или вниз. Определите количество маршрутов, которые ведут к выходу.
Первая строчка входных данных содержит натуральные числа N и M, не превосходящих 1000. Далее идет план замка в виде N строчек из M чисел в каждой. Одно число соответствует одной комнате: 1 означает, что в комнату можно попасть, 0 – что комната закрыта.
Программа должна напечатать количество маршрутов, ведущих узника к выходу и проходящих через M+N-1 комнату, или слово Impossible, если таких маршрутов не существует.
Входные данные подобраны таким образом, что искомое число маршрутов не превосходит 2.000.000.000.
3 5 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1
3