칸 막기
시간 제한3초메모리 제한512 MB
n×m 격자에서 서로 다른 빈 칸 두 개를 막아 (1, 1)에서 (n, m)으로 오른쪽 또는 아래로만 가는 경로가 없어지는 방법의 수를 구합니다.
문제
크기의 격자가 주어지고, 일부 칸은 막혀 있다.
비어 있는 서로 다른 칸 두 개를 막아서, 빈 칸만 지나며 아래 또는 오른쪽으로만 이동하는 에서 으로 가는 경로가 없도록 하는 방법의 수를 구하라.
과 을 막는 것도 허용된다. 두 칸은 처음부터 막혀 있을 수도 있다.
입력
첫째 줄에 격자의 행 수와 열 수를 나타내는 정수 과 ()이 주어진다.
이후 개의 줄에는 각각 개의 문자가 주어진다. 번째 줄의 번째 문자가 '.'이면 칸은 비어 있고, '*'이면 막혀 있다.
출력
두 칸을 막는 방법 중, 빈 칸만 지나며 오른쪽 또는 아래로만 이동하는 에서 으로 가는 경로가 없게 만드는 경우의 수를 정수 하나로 출력한다.
힌트
첫 번째 입력에서 또는 중 하나와 다른 칸 하나를 막으면 유효한 경로가 없다. 이러한 경우는 가지이다. 또 와 을 막거나, 와 을 막아도 유효한 경로가 없으므로 답은 이다.
두 번째 입력에서는 칸 두 개를 어떻게 막아도 경로가 없으므로 답은 이다.
세 번째 입력에서는 처음부터 에서 으로 가는 경로가 없다. 어떤 두 칸을 막아도 이 상태는 그대로이므로 답은 이다.