만드는 중입니다

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

가희와 클럽 오디션 2

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

요약
레벨이 lv인 키 노트와 입력된 키 순서가 주어질 때, 맞춘 앞부분 키 개수를 시뮬레이션하여 마지막에 lv개가 맞는지 판정합니다.
난이도

보통10점 중 4점

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

문제

가희는 클럽 오디션 모드 중 8키 일반 모드를 플레이하고 있습니다. 이 모드에서는 여러 레벨의 노트가 나옵니다. 레벨이 nn인 키 노트에는 nn개의 키가 나옵니다. 표시된 순서대로 키를 올바르게 친 뒤 타이밍에 맞춰 Space 키를 누르면, 판정에 따라 점수를 얻습니다.

키는 두 종류 중 하나입니다.

  • 정방향 키: 노트에 주어진 방향과 같은 방향을 가리키는 키를 쳐야 일치한다고 판정합니다.
  • 역방향 키: 노트에 주어진 방향과 반대 방향을 가리키는 키를 쳐야 일치한다고 판정합니다.

[그림 1] 역방향 키가 있는 레벨 6의 키 노트

[그림 1]의 키 노트에서 2번째, 5번째, 6번째 키는 주황색으로 표시되어 있습니다. 이 키들은 역방향 키입니다. 군청색으로 표시된 1번째, 3번째, 4번째 키는 정방향 키입니다. 따라서 이 키 노트의 방향은 왼쪽부터 우, 좌상, 좌하, 우, 좌하, 상입니다. 유저가 어떤 순서로 키를 쳤는지에 따라 앞에서부터 몇 개의 키가 일치하는지가 정해집니다. 레벨이 lvlv인 키 노트가 나오면, 아래 규칙에 따라 상태가 정해집니다.

  • 키 노트가 처음 등장했고 유저가 아무 키도 입력하지 않았다면, 앞에서부터 00개의 키가 일치한 상태입니다.
  • 앞에서부터 ii개의 키가 일치한 상태일 때
    • i=lvi=lv이면, 임의의 키가 입력되었을 때 앞에서부터 00개의 키가 일치한 상태로 바뀝니다.
    • i≠lvi \ne lv이면
      • 유저가 입력한 키가 키 노트의 i+1i+1번째 키와 일치한다고 판정되면, 앞에서부터 i+1i+1개의 키가 일치한 상태가 됩니다.
      • 그렇지 않으면 앞에서부터 00개의 키가 일치한 상태로 바뀝니다.

정방향 키 우, 우하, 좌하, 우, 우상, 하 순서로 나온 레벨 6의 키 노트가 있습니다. [그림 2]부터 [그림 4]에서 키의 색깔은 다음 뜻입니다.

  • 노란색: 앞에서부터 일치하는 키
  • 파란색: 남은 키. lvlv개의 키가 일치한 상태가 되려면 순서대로 쳐야 하는 키

[그림 2] 키 노트의 상태 #1

[그림 2]의 위쪽은 앞에서부터 2개의 키가 일치한 상태를 나타냅니다. 이 상태에서 우 키를 입력하면 [그림 2]의 아래쪽 상태가 됩니다. 키 노트의 3번째 키인 좌하와 입력한 방향 우가 일치하지 않기 때문입니다.

[그림 3] 키 노트의 상태 #2

앞에서부터 2개의 키가 일치한 상태에서 좌하를 뜻하는 키를 입력하면, 앞에서부터 3개의 키가 일치하는 상태([그림 3]의 아래쪽)가 됩니다. 키 노트의 3번째 키인 좌하와 입력한 방향 좌하가 일치하기 때문입니다.

레벨이 lvlv인 키 노트에서 앞에서부터 lvlv개의 키가 일치한 상태일 때 임의의 키를 입력하면, 앞에서부터 00개의 키가 일치한 상태로 바뀝니다. [그림 4]가 이를 보여 줍니다.

[그림 4] 키 노트의 상태 #3

Space 키는 레벨이 lvlv인 키 노트의 판정을 받을 때 누릅니다. 최종 판정은 다음과 같습니다.

  • 타이밍에 맞춰 Space 키를 눌렀을 때
    • 앞에서부터 lvlv개의 키가 일치한 상태이면 성공입니다.
    • 그렇지 않으면 실패합니다.
  • 타이밍에 맞지 않게 Space 키를 누르면 실패합니다.

가희가 쳐야 하는 노트가 주어지고, 그 노트의 타이밍이 올 때까지 가희가 누른 키가 순서대로 주어집니다. 가희가 노트의 타이밍에 맞춰 Space 키를 눌렀을 때 최종 판정이 성공인지 실패인지 출력하세요.

입력

1번째 줄에는 레벨이 lvlv인 노트의 정보가 주어집니다. 키 노트는 다음 형식으로 주어집니다.

{direction}{is_reverse}

  • direction: W, A, S, D, LU, LD, RU, RD 중 하나입니다. 순서대로 상, 좌, 하, 우, 좌상, 좌하, 우상, 우하 방향을 뜻합니다.
  • is_reverse(선택): 역방향 키이면 direction 뒤에 문자 !가 붙습니다. 예를 들어 W!는 W의 반대 방향인 하 방향을 뜻합니다.

2번째 줄에는 가희가 입력한 키가 주어집니다. 입력한 키는 W, 8, A, 4, S, 2, D, 6, 7, 1, 9, 3 중 하나입니다.

방향키
상W 또는 8
하S 또는 2
좌A 또는 4
우D 또는 6
좌상7
좌하1
우상9
우하3

[표 1] 유저가 입력한 키와 대응되는 방향

출력

주어진 키 노트에 대해 최종 판정이 성공이면 Yes를, 그렇지 않으면 No를 출력하세요.

제한

키 노트의 레벨은 66보다 크거나 같고, 1111보다 작거나 같습니다.

가희가 입력한 키의 수는 11보다 크거나 같고, 20 00020\,000보다 작거나 같습니다.

예제4

  1. 예제 1

    입력
    WLU!LDAS!D!RD!
    W31AW47
    
    예상 출력
    Yes
    
  2. 예제 2

    입력
    DDDDDD
    DDDDDDD
    
    예상 출력
    No
    
  3. 예제 3

    입력
    DD!DDDD!
    DDDDDDDDDDDD
    
    예상 출력
    No
    
  4. 예제 4

    입력
    WLU!LDAS!D!RD!
    W31A447W
    
    예상 출력
    No