시야 밖으로

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

요약
벽이 있는 격자에서 나의 시작 위치와 여러 로봇의 이동 경로가 주어질 때, 로봇의 같은 행이나 열에서 벽 없이 보이지 않고 버틸 수 있는 최대 턴 수를 구한다.
난이도

어려움10점 중 8점

유형
BFS, 시뮬레이션, 그리디, 구현
정답자
아직 제출이 없습니다

문제

당신은 또 책상에서 잠들었다가, 새로 설치된 보안 카메라 로봇들이 사무실 복도로 굴러 나오는 소리에 잠에서 깼습니다. 로봇 중 하나라도 당신의 사진을 찍으면 큰일이 납니다. 다행히 각 로봇이 따라가도록 프로그래밍된 경로를 컴퓨터로 정확히 확인할 수 있으므로, 모든 로봇의 시야에서 벗어나 있도록 자신의 움직임을 계획할 수 있습니다.

로봇은 한 칸 크기의 이산적인 걸음으로 이동하며, 각 걸음마다 북, 동, 남, 서 중 한 방향으로 움직입니다. 당신도 매 걸음마다 (벽이 허용하는 한) 북, 동, 남, 서 중 한 방향으로 한 칸 움직이거나 제자리에 머무를 수 있습니다. 당신과 모든 로봇은 한 턴에 한 걸음씩 동시에 움직입니다.

당신과 로봇 모두 벽을 통과하거나 건물 밖으로 나갈 수 없습니다.

이동을 마친 직후, 모든 로봇은 북, 남, 동, 서 방향을 향해 사진을 찍습니다. 어떤 로봇과 같은 행 또는 같은 열에 있고 그 사이에 벽이 없다면 당신은 사진에 찍힙니다. 또한 한 걸음이 끝났을 때 어떤 로봇과 같은 칸에 있어도 찍힌 것으로 간주합니다.

입력

입력은 하나 이상의 미로로 이루어져 있습니다. 각 미로는 두 정수 ww와 hh가 담긴 줄로 시작하며, 각각 미로의 너비(서에서 동)와 높이(북에서 남)를 나타냅니다. 당신과 로봇 모두 이 직사각형 영역을 벗어날 수 없습니다. 이 영역은 완전히 둘러싸여 있는 것으로 간주하지만 내부에 벽이 더 있을 수도 있습니다. w<3w < 3 또는 h<3h < 3이면 입력이 끝납니다.

머리글 줄 다음에는 미로를 나타내는 hh개의 줄이 오며, 각 줄은 최소 ww개의 문자를 포함합니다. 각 줄에서 처음 ww개의 문자만 의미가 있고 나머지 문자는 무시합니다. 각 문자의 의미는 다음과 같습니다.

  • 공백은 빈 칸을 나타냅니다.
  • X는 벽을 나타냅니다.
  • Y는 당신의 시작 칸을 나타내며 정확히 한 번 나타납니다.
  • 00부터 99 사이의 한 자리 숫자 kk는 로봇 kk의 시작 칸을 나타냅니다. 같은 숫자는 반복되지 않으며, NN개의 로봇은 숫자 0,1,…,N−10, 1, \ldots, N-1로 표시됩니다.

미로 다음에는 로봇마다 한 줄씩 NN개의 줄이 오며, ii번째 줄은 로봇 ii의 이동을 나타냅니다. 각 줄은 00개에서 8080개 사이의 문자를 포함하고, NN개의 줄은 모두 같은 길이입니다. 각 문자는 N, S, E, W 중 하나로 각각 북, 남, 동, 서를 뜻하며, 여기서 북은 미로의 첫 번째 줄 방향을, 서는 첫 번째 열 방향을 가리킵니다. 이 문자들은 로봇의 이동을 한 턴에 하나씩 순서대로 나열한 것입니다.

출력

각 미로에 대해 다음 형식의 한 줄을 출력하세요.

You can hide for M turns.

여기서 MM은 당신이 사진에 찍히지 않은 채로 로봇들이 이동할 수 있는 최대 턴 수입니다. 로봇들의 프로그래밍된 이동이 모두 끝날 때까지 발각을 피할 수 있다면, MM은 각 로봇에게 주어진 이동 문자의 개수와 같습니다.

예제3

  1. 예제 1

    입력
    12 7
    XXXXXXXXXXXX
    X      1   X
    X        X X
    X        X X
    X      XXX X
    X    0 XXXYX
    XXXXXXXXXXXX
    NNEWSWWW
    EEEWWWWW
    0 0
    
    예상 출력
    You can hide for 2 turns.
    
  2. 예제 2

    입력
    5 5
    XXXXX
    XY  X
    X   X
    X0  X
    XXXXX
    EEW
    0 0
    
    예상 출력
    You can hide for 3 turns.
    
  3. 예제 3

    입력
    5 5
    XXXXX
    XY  X
    X   X
    X0  X
    XXXXX
    EEW
    3 5
    XXX
    XYX
    X X
    X0X
    XXX
    N
    0 0
    
    예상 출력
    You can hide for 3 turns.
    You can hide for 0 turns.