아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

험난한 등굣길

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

요약
정체 구역마다 맨해튼 거리 D 이내의 칸이 막혀 있을 때, (1,1)에서 (N,M)까지 막힌 칸을 피해 갈 수 있는지 판정하고 최단 이동 횟수를 구한다.
난이도

보통10점 중 6점

유형
BFS, 그래프, 구현
정답자
아직 제출이 없습니다

문제

통학러 재헌이는 1교시 수업을 듣기 위해 아침 일찍 학교에 가려고 한다. 재헌이가 사는 지역은 크기가 N×MN \times M 인 격자로 나타낼 수 있는데, ii행 jj열에 해당하는 칸을 (i,j)(i, j)로 나타낼 때 재헌이는 현재 (1,1)(1, 1)에, 학교는 (N,M)(N, M)에 위치해 있다. 재헌이는 상하좌우로 한 칸씩 이동할 수 있고 지역 바깥으로 나갈 수는 없다.

등굣길은 순탄치만은 않은데, 이 지역에는 KK개의 정체 구역이 있다. ii번째 정체 구역은 세 정수 R_i,C_i,D_iR\_i, C\_i, D\_i로 표현되며, 이는 (R_i,C_i)(R\_i, C\_i)로부터 거리가 D_iD\_i 이하인 칸들에는 극심한 교통 정체가 일어나고 있음을 의미한다. 두 칸 (R_1,C_1),(R_2,C_2)(R\_1, C\_1), (R\_2, C\_2) 사이의 거리는 ∣R_1−R_2∣+∣C_1−C_2∣|R\_1 - R\_2| + |C\_1 - C\_2|와 같다.

재헌이는 교통 정체가 일어나고 있는 칸을 방문하면 수업에 지각하게 되며, 방문하지 않는다면 지각하지 않고 무사히 수업을 들을 수 있다. KK개의 정체 구역에 대한 정보가 주어졌을 때 재헌이가 지각하지 않고 1교시 수업을 들을 수 있을지 알아보자. 또한 재헌이는 최대한 일찍 학교에 도착하려 하기 때문에, 만약 재헌이가 지각하지 않고 수업을 들을 수 있다면 최소 몇 번의 이동으로 수업을 들으러 갈 수 있는지도 구해보자.

입력

첫째 줄에 격자의 크기 N,MN, M이 주어진다. (2≤N,M≤3 000)(2 \le N, M \le 3\ 000)

다음 줄에 정체 구역의 수 KK가 주어진다. (1≤K≤3 000)(1 \le K \le 3\ 000)

다음 KK개 줄에 걸쳐 각 정체 구역의 정보 R_i,C_i,D_iR\_i, C\_i, D\_i가 주어진다. (1≤R_i≤N,1≤C_i≤M,0≤D_i≤3 000)(1 \le R\_i \le N, 1 \le C\_i \le M, 0 \le D\_i \le 3\ 000)

(1,1)(1, 1) 또는 (N,M)(N, M)에 교통 정체가 일어나고 있는 경우는 주어지지 않는다.

출력

재헌이가 지각하지 않고 수업을 들을 수 있으면 YES를 출력하고, 다음 줄에 최소 이동 횟수를 출력한다.

만약 지각하지 않고 수업을 들을 수 없다면 NO를 출력한다.

예제3

  1. 예제 1

    입력
    5 5
    2
    4 2 1
    2 4 0
    
    예상 출력
    YES
    8
    
  2. 예제 2

    입력
    5 5
    2
    4 2 1
    2 4 1
    
    예상 출력
    NO
    
  3. 예제 3

    입력
    4 7
    3
    1 3 0
    1 3 1
    4 5 1
    
    예상 출력
    YES
    11