자물쇠 한 바퀴

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

요약
원형 다이얼과 세 숫자 코드가 주어질 때, 시계 방향과 반시계 방향 회전 순서가 자물쇠를 여는지 판정한다.
난이도

보통10점 중 5점

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

문제

원형 다이얼 자물쇠의 다이얼에는 00부터 n−1n-1까지의 숫자가 시계 방향으로 적혀 있다. 다이얼을 돌리면 그 중 한 숫자가 맨 위로 온다. 00이 맨 위에 있을 때 다이얼을 반시계 방향으로 11만큼 돌리면 11이 맨 위로 오고, 시계 방향으로 11만큼 돌리면 n−1n-1이 맨 위로 온다.

각 자물쇠에는 세 숫자로 이루어진 비밀번호 (x,y,z)(x, y, z)가 있으며, 다음 단계를 순서대로 수행해야만 열린다.

  1. 다이얼을 시계 방향으로 최소 한 바퀴 이상 돌려 xx가 맨 위에 오도록 한다. 이 과정 중간에 반시계 방향으로 돌려서는 안 된다(연속된 여러 번의 시계 방향 회전으로 나누어 수행할 수 있다).
  2. 다이얼을 반시계 방향으로 돌려 yy가 맨 위에 두 번째로 오게 한다. 이 과정 중간에 시계 방향으로 돌려서는 안 된다(연속된 여러 번의 반시계 방향 회전으로 나누어 수행할 수 있다).
  3. 다이얼을 시계 방향으로 돌려 zz가 맨 위에 오게 하되, 한 바퀴를 넘겨서는 안 된다. 이 과정 중간에 반시계 방향으로 돌려서는 안 된다(연속된 여러 번의 시계 방향 회전으로 나누어 수행할 수 있다).

3단계 이후에 다이얼을 조금이라도 돌리면 자물쇠는 다시 잠긴다.

자물쇠 하나와 회전 순서가 주어진다. 첫 회전 전에 자물쇠는 잠겨 있고 다이얼은 00이 맨 위에 오도록 맞춰져 있다. 마지막 회전 후 자물쇠가 열려 있는지 판단하라.

입력

입력은 여러 개의 테스트 케이스로 이루어진다.

각 테스트 케이스의 첫 줄에는 네 정수 nn xx yy zz가 주어진다. 이는 다이얼에 적힌 숫자의 개수와 세 숫자 비밀번호를 뜻한다. xx, yy, zz는 모두 서로 다르며 n≤1000n \le 1000이다.

이어지는 한 줄 또는 여러 줄에는 회전들이 나열되며, 각 회전은 d s 형태로 주어진다. 여기서 d는 시계 방향이면 C, 반시계 방향이면 CC이고, s>0s > 0은 그 회전 동안 맨 위를 지나가는 숫자의 개수이다. 예를 들어 n=50n = 50이고 현재 맨 위가 44일 때, CC 6은 1010을, C 6은 4848을 맨 위로 가져온다. 회전 목록은 여러 줄에 걸칠 수 있으며 ?로 끝난다.

마지막 테스트 케이스 다음에는 0 하나만 있는 줄이 온다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 마지막 회전 후 자물쇠가 열려 있으면 Case k: Open을, 그렇지 않으면 Case k: Closed를 출력한다. 여기서 kk는 11부터 시작하는 테스트 케이스 번호이다.

예제2

  1. 예제 1

    입력
    60 6 1 58
    C 114 CC 115 C 3 ?
    60 6 1 58
    C 54 CC 115 C 3 ?
    60 6 1 58
    C 54 C 60 CC 115 C 3 ?
    0
    
    예상 출력
    Case 1: Open
    Case 2: Closed
    Case 3: Open
    
  2. 예제 2

    입력
    10 3 7 1
    C 17 CC 14 C 6 ?
    0
    
    예상 출력
    Case 1: Open