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

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

은밀한 닌자

시간 제한1초메모리 제한128 MB

요약
주기적으로 방향을 바꾸며 감시하는 경비병들이 있는 격자에서 닌자가 들키지 않고 앞벽에서 뒷벽까지 건널 수 있는지 판정한다.
난이도

어려움10점 중 8점

유형
그래프, BFS, 시뮬레이션
정답자
아직 제출이 없습니다

문제

큰 궁전 안에는 바닥이 (2n−1)×(2n−1)(2n-1) \times (2n-1) 크기의 정사각형 격자로 이루어진 홀이 있다. 행은 홀의 앞쪽에서 뒤쪽으로 11번부터 2n−12n-1번까지, 열은 왼쪽에서 오른쪽으로 11번부터 2n−12n-1번까지 번호가 매겨져 있다.

행 번호와 열 번호가 모두 짝수인 칸에는 정사각형 나무 기둥이 세워져 있고, 나머지 칸은 모두 비어 있다. 그 결과 빈 칸들은 홀수 행을 따라 좌우로 뻗은 nn개의 복도와, 홀수 열을 따라 앞뒤로 뻗은 nn개의 복도를 이룬다. 앞뒤 방향의 각 복도는 앞쪽 벽과 뒤쪽 벽에서 커튼이 달린 문으로 끝나며, 그 밖의 벽면은 모두 막혀 있다.

홀은 kk명의 경비원이 지킨다. 각 경비원은 앞뒤 복도와 좌우 복도가 만나는 교차점, 즉 행과 열이 모두 홀수인 칸에 서 있다. 경비원은 44초 동안 홀의 왼쪽을, 다음 44초 동안 뒤쪽을, 다음 44초 동안 오른쪽을, 다음 44초 동안 앞쪽을 바라보며, 이 1616초 주기를 무한히 반복한다. 경비원들의 위상이 서로 같을 필요는 없다. 즉 시각 00에 각 경비원은 네 방향 중 어느 쪽을 바라보고 있어도 된다. 경비원이 어떤 방향을 바라보는 동안에는 자신이 선 복도에서 그 방향으로 벽에 닿을 때까지의 모든 칸을 볼 수 있다. 경비원끼리는 서로를 지나쳐 볼 수 있지만, 커튼 너머는 볼 수 없다.

닌자는 경비원과 마주치지 않고, 또 한 번도 들키지 않으면서 홀을 앞에서 뒤로 통과하려 한다. 홀에 들어가기 전 닌자는 00번 행, 즉 앞쪽 벽의 커튼 중 하나 뒤에서 기다린다. 어느 커튼 뒤에서 얼마나 오래 기다릴지는 닌자가 정한다. 나갈 때는 뒤쪽 벽의 어느 커튼으로든 나갈 수 있다. 한 칸에서 상하좌우로 인접한 칸으로 걸어가는 데는 22초가 걸리며, 걷는 동안 그 이동의 어느 순간에라도 떠나는 칸이나 들어가는 칸을 바라보는 경비원이 있으면 닌자는 들킨다. 닌자는 경비원이 지금 바라보는 칸에는 결코 서 있을 수 없고, 경비원이나 나무 기둥이 있는 칸에는 들어갈 수 없다.

예를 들어 예제의 다섯 경비원이 있는 n=4n = 4인 경우를 생각하자. 닌자는 다음과 같이 통과할 수 있다. 먼저 기다린다. 88초 후 55행 11열의 경비원이 왼쪽으로 고개를 돌리면, 닌자는 11열의 커튼을 지나 들어간다. 1010초 후 11행 11열에, 1212초 후 22행 11열에 도착한다. 그곳에서 33행 55열의 경비원이 뒤쪽으로 고개를 돌릴 때까지 기다린 뒤 다시 걸어, 11행의 경비원이 그 방향으로 고개를 돌리기 직전에 33열의 커튼 뒤로 사라진다. 이렇게 닌자는 성공한다.

각 홀에 대해 닌자가 무사히 통과할 수 있는지를 판정하여라.

입력

첫 줄에는 테스트 케이스의 개수를 나타내는 정수 하나가 주어진다. 각 테스트 케이스의 형식은 다음과 같다.

  • 한 줄에 두 정수 nn과 kk가 주어진다. nn은 각 방향의 복도 수(1≤n≤2501 \le n \le 250), kk는 경비원의 수(0≤k≤5000 \le k \le 500)이다.
  • 이어서 경비원마다 한 줄씩, 모두 kk개의 줄이 주어진다. 각 줄에는 홀수인 정수 rr(1≤r≤2n−11 \le r \le 2n-1), 홀수인 정수 cc(1≤c≤2n−11 \le c \le 2n-1), 그리고 L, B, R, F 중 한 글자가 주어진다. rr과 cc는 경비원이 선 칸의 행과 열이고, 글자는 시각 00에 경비원이 바라보는 방향(왼쪽 L, 뒤쪽 B, 오른쪽 R, 앞쪽 F)이다.

같은 칸에 경비원이 둘 이상 서 있는 경우는 없다.

출력

각 테스트 케이스마다 succeeds 또는 fails 중 하나를 한 줄에 출력한다.

힌트

예제(n=4n = 4, 경비원 55명)에서는 닌자가 들키지 않고 홀을 앞에서 뒤로 통과할 수 있으므로 답은 succeeds이다. 이는 위 문제 설명의 예시 상황과 같다.

예제3

  1. 예제 1

    입력
    1
    4 5
    1 3 B
    3 5 B
    5 1 R
    5 5 F
    7 7 F
    
    예상 출력
    succeeds
    
  2. 예제 2

    입력
    1
    1 0
    
    예상 출력
    succeeds
    
  3. 예제 3

    입력
    1
    1 1
    1 1 F
    
    예상 출력
    fails