문제 4303 · 바이트 II
원형 객석의 안내등
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공연장의 작은 원형 객석에는 좌석마다 안내등이 하나씩 설치되어 있다. 좌석은 모두 N개이며, 시계 방향으로 1번부터 N번까지 번호가 붙어 있다. N번 좌석에서 시계 방향으로 한 칸 이동하면 1번 좌석이고, 1번 좌석에서 반시계 방향으로 한 칸 이동하면 N번 좌석이다. 좌석이 하나뿐인 경우에는 어느 방향으로 이동해도 같은 좌석에 도착한다. 안내 담당자는 하나의 좌석을 가리키는 표시기를 이용하여 안내등을 조작한다. 처음에 표시기는 1번 좌석을 가리키고, 이동 방향은 시계 방향이다. 모든 안내등은 꺼져 있다. 공연 준비를 위해 작성된 명령 Q개를 입력에 주어진 순서대로 처리해야 한다. 명령 M x는 현재 정해진 이동 방향으로 표시기를 정확히 x칸 이동시킨다. x가 0이면 표시기는 움직이지 않는다. 한 바퀴 이상 이동할 수 있으며, 이동하는 동안 지나간 좌석의 안내등에는 아무 변화도 없다. 명령 R은 표시기의 이동 방향만 반대로 바꾼다. 이 명령은 표시기의 위치와 안내등의 상태를 바꾸지 않는다. 명령 T는 현재 표시기가 가리키는 좌석의 안내등 하나를 전환한다. 꺼져 있으면 켜고, 켜져 있으면 끈다. 명령은 서로 독립적인 요청이 아니라 앞선 명령의 결과를 이어받아 실행된다. 따라서 같은 좌석에서 T를 두 번 실행하면 그 좌석의 안내등은 두 명령을 실행하기 전의 상태로 돌아간다. 이동 방향이 바뀌어도 이전에 켜 둔 안내등은 그대로 유지된다. 명령을 모두 처리한 뒤 표시기가 가리키는 좌석 번호와 켜져 있는 안내등의 개수를 구하는 프로그램을 작성한다. 켜진 안내등이 하나도 없으면 그 개수는 0이다.
입력
첫째 줄에 정수 N과 Q가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 100,000, 1 ≤ Q ≤ 20,000이다. 다음 Q개 줄에는 명령이 하나씩 주어진다. 각 명령은 M x, R, T 중 하나이다. M x의 x는 0 이상 1,000,000,000 이하의 정수이다. R과 T에는 추가 인자가 없다.
출력
명령을 모두 처리한 뒤 표시기가 가리키는 좌석 번호와 켜져 있는 안내등의 개수를 공백으로 구분하여 한 줄에 출력한다.
예제 입력 1
5 8 T M 2 T R M 3 T M 4 T
예제 출력 1
1 2
예제 입력 2
1 5 M 1000000000 T R M 0 T
예제 출력 2
1 0
힌트 펼치기
- 좌석 번호를 0부터 N-1까지로 바꾸면 나머지 연산으로 원형 이동을 계산할 수 있다.
- 켜진 안내등의 개수는 T 명령을 처리할 때마다 갱신할 수 있다.
관련 서재 장
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |