Марго покидает Мегабайтбург

시간 제한2초메모리 제한1024 MB

요약
벽이 있는 N x M 격자에서 상하좌우 한 칸 이동과 최대 K번의 축 방향 두 칸 이동을 사용해 시작 칸에서 도착 칸으로 갈 수 있는지 판정한다.
난이도

보통10점 중 7점

유형
BFS, 그래프, 최단 경로, 그리디
정답자
아직 제출이 없습니다

문제

В связи с некоторыми событиями Марго необходимо покинуть Мегабайтбург. Известно, что этот город представляет собой прямоугольную матрицу, длина которой равна MM, а высота -- NN. Клетки матрицы бывают двух типов: свободные (обозначаются символом '..') и занятые стеной (обозначаются символом '\\#'). Марго может за один ход переместиться из клетки (i,j)(i, j) в любую из клеток (i−1,j)(i - 1, j), (i+1,j)(i + 1, j), (i,j−1)(i, j - 1), (i,j+1)(i, j + 1). Также Марго может не более KK раз совершить в качестве хода Мегапрыжок: из клетки (i,j)(i, j) попасть в любую из клеток (i−2,j)(i - 2, j), (i+2,j)(i + 2, j), (i,j−2)(i, j - 2), (i,j+2)(i, j + 2). При этом, вне зависимости от того, использовался ли Мегапрыжок или нет, Марго должен завершить свой ход в свободной клетке, которая находится внутри Мегабайтбурга. Общежитие, в котором сейчас находится Марго, расположено в клетке (d_x,d_y)(d\_x, d\_y), а аэропорт, в который Марго хочет попасть, -- в клетке (a_x,a_y)(a\_x, a\_y). Гарантируется, что общежитие и аэропорт находятся в разных свободных клетках. Сейчас нет времени на размышления, поэтому требуется Ваша помощь. Выясните, может ли Марго добраться от общежития до аэропорта.

입력

В первой строке даны числа N,M,K(2≤N,M≤1000,0≤K≤106)N, M, K (2 \le N, M \le 1000, 0 \le K \le 10^6) -- размеры Мегабайтбурга и количество доступных Марго Мегапрыжков.

В каждой из последующих NN строк дано MM символов '..' или '\\#' -- описание Мегабайтбурга.

В N+2N + 2-й строке даны числа d_x,d_y(1≤d_x≤N,1≤d_y≤M)d\_x, d\_y (1 \le d\_x \le N, 1 \le d\_y \le M) -- координаты общежития. Гарантируется, что данная клетка свободна.

В последней строке даны числа a_x,a_y(1≤a_x≤N,1≤a_y≤M)a\_x, a\_y (1 \le a\_x \le N, 1 \le a\_y \le M) -- координаты аэропорта. Гарантируется, что данная клетка свободна.

Гарантируется, что координаты общежития не совпадают с координатами аэропорта.

출력

Выведите <<YES>>, если Марго может попасть из общежития в аэропорт. В противном случае выведите <<NO>>. Ответ можно выводить в любом регистре.

힌트

Решение на языке Python можно ускорить, если отправить его на PyPy.

예제3

  1. 예제 1

    입력
    3 3 1
    .#.
    #.#
    .#.
    1 1
    3 3
    
    예상 출력
    NO
    
  2. 예제 2

    입력
    2 2 0
    #.
    ..
    1 2
    2 1
    
    예상 출력
    YES
    
  3. 예제 3

    입력
    2 5 2
    .#.#.
    ###..
    1 1
    2 4
    
    예상 출력
    YES