만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

로봇

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

요약
가장자리가 이어진 보드에 좌회전과 우회전 칸이 있을 때, 각 질의마다 로봇이 출발 칸에서 목표 칸까지 가는 데 필요한 최소 회전 수를 구합니다.
난이도

어려움10점 중 9점

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

문제

보드 게임을 좋아하는 케일은 최근 Robots라는 게임을 알게 되었다. 이 게임은 nn행 mm열 보드와 로봇 한 대로 진행한다. 칸 (1,1)(1, 1)은 보드의 왼쪽 위이고, 칸 (n,m)(n, m)은 오른쪽 아래다.

처음에 로봇은 칸 (x,y)(x, y) (xx행 yy열)에 놓인다. 플레이어는 위, 아래, 왼쪽, 오른쪽 중 한 방향으로 로봇을 보낼 수 있다. 로봇은 선택한 방향으로 목표 칸이나 특수 칸을 만날 때까지 움직인다. 보드 밖으로 나가려 하면 반대편으로 이어진다. 예를 들어 로봇이 칸 (n,3)(n, 3)에서 아래로 움직이면 칸 (1,3)(1, 3)에 도착한다.

보드의 칸은 세 종류다.

  • 빈 칸: 로봇이 같은 방향으로 계속 움직인다.
  • 왼쪽 회전 칸: 로봇이 이 칸에 들어서면 왼쪽으로 90° 회전하고 계속 움직인다.
  • 오른쪽 회전 칸: 로봇이 이 칸에 들어서면 오른쪽으로 90° 회전하고 계속 움직인다.

대부분의 칸은 빈 칸이다. 왼쪽 회전 칸과 오른쪽 회전 칸은 합쳐서 kk개뿐이다.

게임은 qq라운드로 진행된다. ii번째 라운드에서 로봇은 칸 (ai,bi)(a_i, b_i)에 놓인다. 목표는 최소 회전 수로 칸 (ci,di)(c_i, d_i)에 도달하는 것이다. 도달할 수 없다면 그 사실을 판정한다.

참고: 로봇이 회전 칸에서 출발하거나 회전 칸에 도착하는 경우, 그 회전은 세지 않는다.

입력

첫 줄에 정수 nn, mm, kk (1≤n,m≤1061 \le n, m \le 10^6, 0≤k≤1050 \le k \le 10^5)가 주어진다. 각각 행의 수, 열의 수, 보드에서 빈 칸이 아닌 칸의 수다.

다음 kk개의 줄에는 정수 xix_i, yiy_i와 문자 sis_i (1≤xi≤n1 \le x_i \le n, 1≤yi≤m1 \le y_i \le m, sis_i는 L 또는 R)가 주어진다. (xi,yi)(x_i, y_i)는 ii번째 회전 칸의 행과 열이고, sis_i는 그 칸의 종류다. L은 왼쪽 회전 칸, R은 오른쪽 회전 칸이다.

다음 줄에는 라운드 수 정수 qq (1≤q≤3⋅1051 \le q \le 3 \cdot 10^5)가 주어진다.

다음 qq개의 줄에는 정수 aia_i, bib_i, cic_i, did_i (1≤ai,ci≤n1 \le a_i, c_i \le n, 1≤bi,di≤m1 \le b_i, d_i \le m)가 주어진다. 각각 그 라운드의 출발 칸과 목표 칸이다.

출력

각 라운드마다 최소 회전 수를 한 줄에 출력한다. 목표에 도달할 수 없으면 -1을 출력한다.

예제3

  1. 예제 1

    입력
    2 2 2
    1 1 L
    2 2 R
    5
    1 1 2 2
    2 1 1 2
    1 1 1 2
    2 1 1 1
    2 2 2 1
    
    예상 출력
    -1
    1
    0
    0
    0
    
  2. 예제 2

    입력
    3 3 4
    1 1 L
    1 3 L
    2 1 L
    3 3 L
    7
    1 1 3 3
    3 3 2 1
    3 1 2 2
    2 3 1 2
    2 3 3 1
    1 2 3 2
    3 3 2 2
    
    예상 출력
    1
    2
    1
    1
    1
    0
    3
    
  3. 예제 3

    입력
    4 4 8
    1 1 R
    1 3 L
    2 2 R
    2 4 L
    3 1 L
    3 3 L
    4 2 L
    4 4 L
    7
    1 2 1 4
    2 2 3 4
    4 4 3 2
    4 1 4 4
    4 2 3 1
    1 2 2 3
    2 4 2 3
    
    예상 출력
    2
    1
    1
    0
    -1
    5
    0