만드는 중입니다

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

프로기

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

요약
일정한 간격으로 움직이는 차들이 있는 차선을 개구리가 위로 건너는 과정을 시뮬레이션하여, 안전하게 도착하는지 차에 치이는지 판정합니다.
난이도

쉬움10점 중 3점

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

문제

고전 게임 'Frogger'를 다시 만든다. 스프라이트, 음악, 애니메이션은 신경 쓰지 않아도 된다. 게임 아트팀이 맡는 부분이다.

각 레벨에는 여러 차선이 있는 도로가 있고, 자동차는 양방향으로 달린다. 같은 차선의 자동차는 일정한 간격으로 놓이며, 같은 속도로 같은 방향으로 움직인다. 차선의 방향은 번갈아 바뀌고, 가장 위 차선은 왼쪽에서 오른쪽으로 움직인다.

프로기는 가장 아래 차선 아래에서 출발해 도로를 아래에서 위로 건넌다. 매 시간 단계마다 프로기는 위, 아래, 왼쪽, 오른쪽 중 한 방향으로 한 칸씩 뛴다. 목표는 자동차에 치이지 않고 프로기를 도로 너머, 가장 위 차선 위로 보내는 것이다.

자동차 피하기

프로기가 움직이는 자동차의 경로에 들어가면 깔려 버린다. 그림 D.6은 연속된 두 시각에 걸친 자동차 한 대를 보여 준다. 시각 tt에 자동차가 가장 왼쪽 칸에 있고, 프로기는 이 차선에 없다고 하자. 시각 t+1t + 1에 자동차가 속도 3으로 가장 오른쪽 칸까지 움직이고, 프로기가 이 차선으로 뛰어든다. 차선의 폭은 4칸이므로 안전한 칸은 자동차가 방금 있었던 가장 왼쪽 칸뿐이다. 나머지 세 칸으로 뛰면 자동차에 깔려 시뮬레이션이 끝난다.

그림 D.6: 연속된 두 시각에 걸친 자동차 한 대. 왼쪽에서 출발해 오른쪽으로 움직인다.

목표

도로 정보, 자동차의 위치와 속도, 프로기의 시작 위치와 이동 순서가 주어지면 시뮬레이션의 결과를 구한다. 결과는 두 가지다. 프로기가 가장 위 차선에서 무사히 나가거나, 자동차에 깔리거나 둘 중 하나다.

도로에 들어가기 전에 프로기는 왼쪽이나 오른쪽으로 움직여 경로를 미리 짤 수 있다. 일단 도로에 들어가면 위쪽으로만 나갈 수 있다. 프로기의 경로는 차선의 왼쪽, 오른쪽, 아래 경계를 벗어나지 않는다.

입력

각 입력은 시뮬레이션 한 번을 나타낸다. 첫 줄에는 공백으로 구분된 정수 LL과 WW가 있다. LL은 차선의 수이고 (1≤L≤101 \le L \le 10), WW는 격자의 폭을 칸 수로 나타낸다 (3≤W≤203 \le W \le 20).

이어서 위에서 아래 순서로 차선마다 한 줄씩 LL개의 줄이 나온다. 각 줄에는 정수 세 개가 있다. OO는 첫 번째 자동차의 시작 오프셋, II는 자동차 사이의 간격, SS는 자동차의 속도이다. 제약은 0≤O<I≤W0 \le O < I \le W와 0≤S≤W0 \le S \le W이다. 모든 오프셋은 해당 차선의 진행 방향을 기준으로 잰다.

마지막 줄은 정수 PP (0≤P≤W−10 \le P \le W - 1)로 시작하고, 공백 뒤에 집합 {U, D, L, R}에서 고른 MM개 문자 (1≤M≤L×W1 \le M \le L \times W)의 문자열이 온다. PP는 왼쪽에서부터 센 프로기의 시작 위치이고, 문자열은 프로기가 하는 이동(위, 아래, 왼쪽, 오른쪽)의 순서이다.

출력

프로기가 도로를 건너 가장 위 차선에서 나가면 "safe"를 출력한다. 자동차에 치이거나 도로 위에서 끝나지 않으면 "squish"를 출력한다.

예제5

  1. 예제 1

    입력
    3 7
    0 3 1
    1 2 1
    2 3 2
    2 UUUU
    
    예상 출력
    safe
    
  2. 예제 2

    입력
    3 6
    0 3 1
    1 2 1
    2 3 2
    2 U
    
    예상 출력
    squish
    
  3. 예제 3

    입력
    3 6
    0 3 1
    1 2 1
    2 3 2
    2 UR
    
    예상 출력
    squish
    
  4. 예제 4

    입력
    3 6
    0 3 0
    1 2 0
    2 3 0
    1 UUUU
    
    예상 출력
    safe
    
  5. 예제 5

    입력
    3 6
    0 3 0
    1 2 0
    2 3 0
    1 LRRLUUUU
    
    예상 출력
    safe