전차 Batch 컴파일 명령
시간 제한 | 메모리 제한 | 제출 횟수 | 통과한 사람 수 | 비율 |
---|---|---|---|---|
1000 ms | 256 MiB | 285 | 37 | 12.98% |
크로아티아의 수도 자그레브에서 새로 운영되는 전차의 좌석은 $1$부터 $N$까지의 자연수 번호가 붙어 있는 $N$개의 행과 $1$과 $2$의 번호가 붙은 2개의 열로 구성된 격자판으로 표현할 수 있습니다. $R_{A}$행 $C_{A}$열에 있는 좌석과 $R_{B}$행 $C_{B}$열에 있는 좌석 간의 거리는 격자의 중심 좌표 사이 유클리드 거리 $\sqrt{ (R_{A} - R_{B})^2 + (C_{A} - C_{B})^2 }$로 정의됩니다.
대부분의 승객들은 대중교통을 이용할 때 혼자 있기를 원하기 때문에, 승객이 앉아 있는 가장 가까운 좌석과의 거리가 가장 먼 좌석에 앉기를 원합니다. 만약 이러한 좌석의 후보가 여러 개 있다면, 행 번호가 작은 좌석을, 그래도 여러 개 있다면 열 번호가 작은 좌석을 고른다고 합니다. 승객이 이렇게 앉고자 하는 좌석을 골라서 그 곳에 앉는다면, 전차에서 내릴 때까지 자리를 옮기지 않습니다. 전차가 비어 있다면, 다음 승객은 무조건 1행 1열의 좌석을 선택할 것입니다.
해야 할 일
승객들이 타고 내린 일련의 과정들이 주어질 때, 각 승객이 앉아 있었던 좌석의 위치를 알아 내는 프로그램을 작성하세요. 초기에 전차는 비어 있습니다.
입력에서는 1 이상 $M$ 이하의 자연수로 번호가 붙여진 $M$개의 이벤트들이 주어집니다. 이벤트에는 두 가지 종류가 있습니다.
E
: 한 승객이 전차 안으로 들어와서 위의 기준에 따라 정한 자리에 앉습니다.L
: 한 승객이 전차를 빠져나갑니다. 이 이벤트가 주어질 때에는 정수P
도 함께 주어지는데, 이는 하차한 승객이P
번째 이벤트에서 들어온 승객이라는 것을 의미합니다.
승객이 전차에 들어올 때 빈 자리가 최소 하나는 있다는 것이 보장됩니다.
입력
첫 번째 줄에는 전차 좌석의 행의 수 $N$과 이벤트의 수 $M$ ($1 \le N \le 150,000, 1 \le M \le 30,000$)이 공백을 사이로 두고 주어집니다. 다음 $M$개 줄에는 각 이벤트의 정보가 주어집니다. 이 중 $K$번째 줄에는 $K$번 이벤트의 정보가 주어지는데, 주어질 수 있는 경우는 아래 2가지입니다.
- 문자
E
- 문자
L
, 공백 하나, 정수 $P_{K}$ ($1 \le P_{K} < K$).- $P_{K}$번 이벤트는 그 종류가
E
이며, 같은 승객이 두 번 이상 전차를 빠져나가지 않음이 보장됩니다.
- $P_{K}$번 이벤트는 그 종류가
출력
출력해야 할 줄 수는 입력에서 주어지는 종류가 E
인 이벤트의 수와 같아야 합니다. 각 E
형태의 이벤트에 대해, 입력에서 주어진 순서대로, 승객이 고른 좌석의 행 번호와 열 번호를 한 줄에 하나씩 공백 하나를 사이로 두고 출력해야 합니다.
채점 기준
- 전체 채점 데이터 중 25점에 해당하는 데이터에 대해 $N \le 150, M \le 150.$
- 전체 채점 데이터 중 45점에 해당하는 데이터에 대해 $N \le 1.500, M \le 1,500.$
- 전체 채점 데이터 중 65점에 해당하는 데이터에 대해 $N \le 150,000, M \le 1,500.$
제출 시 피드백
대회 중에 여러분은 답안을 최대 50번까지 제출할 수 있으며, 제출한 답안은 공식 데이터 중 일부로 채점됩니다. 채점이 완료되면 대회 시스템에서 간략한 정보를 찾아볼 수 있습니다.
입출력 예제
입력 | 출력 |
---|---|
3 7 E E E L 2 E L 1 E |
1 1 3 2 1 2 3 1 1 1 |
13 9 E E E E E E E E E |
1 1 13 2 7 1 4 2 10 1 2 2 3 1 5 1 6 2 |
10 9 E E E E L 3 E E L 6 E |
1 1 10 2 5 2 7 1 4 2 2 2 4 1 |