진행을 기다리는 4 방향 정지 표지판에 많은 차량이 줄 지어 있습니다. 누가 다음에 갈 것인지, 누가 어떤 식으로 갈 것인지 등에 대해 혼란스러워합니다. 분명히 차선책입니다.
당신의 임무는 최적의 방식으로 정지 신호에서 트래픽을 예약하는 것입니다.
4 개의 기본 방향 각각에 대해 4 개의 문자열 요청을 입력으로받습니다. 각 요청은 L
왼쪽, S
직선 또는 R
오른쪽입니다.
LLSLRLS
SSSRRSRLLR
LLRLSR
RRRLLLL
첫 번째 행은 교차로의 북쪽 입구에있는 라인업입니다. 첫 번째 줄의 자동차는 좌회전 (동쪽 출구)합니다. 다음 행은 들어오는 동쪽, 남쪽 및 서쪽 입구입니다. 따라서 서쪽에서 오는 첫 번째 차는 남쪽으로 나가기를 원합니다.
트래픽은 일련의 단계로 이동합니다. 각 단계에서 진행하려면 라인 헤드에서 자동차의 하위 세트를 선택해야합니다. 선택한 차량 이 서로 간섭 해서는 안됩니다 . 두 대의 자동차가 같은 방향을 벗어나거나 서로의 경로를 넘어야하는 경우 방해를받습니다 (표준 오른 손잡이 운전 규칙). 따라서 똑바로 가고 싶은 두 대향 차량이 같은 단계를 밟을 수 있습니다. 4 대의 자동차가 모두 우회전하기를 원할 수 있습니다. 두 대향 차량이 동시에 왼쪽으로 회전 할 수 있습니다.
귀하의 임무는 최소 일련의 단계로 교차로를 예약하는 것입니다. 각 단계마다 들어오는 차량의 나침반 방향이 나열된 라인을 출력하십시오. 위의 예에서 최소 스케줄은 14 단계입니다. 최소한의 일정은 다음과 같습니다.
N [L from North]
E [S from East]
E [S from East]
E [S from East]
NESW [L from North, R from East, L from South, R from West]
NE [S from North]
EW [R from East]
NESW [L from North, R from East, L from South, R from West]
W [L from West]
EW [L from East, L from West]
NESW [R from North, L from East, R from South, L from West]
NES [L from North, R from East, L from West]
NS [S from North, S from South]
SW [R from South, L from West]
프로그램은 1 분 안에 각 라인에서 50 대의 차량을 처리 할 수 있어야합니다. 4 개의 문자열을 입력하고 일정을 출력하는 것은 언어에 편리한 방법 일 수 있습니다.
최단 프로그램이 이깁니다.
더 큰 예 :
RRLLSSRLSLLSSLRSLR
RLSLRLSLSSRLRLRRLLSSRLR
RLSLRLRRLSSLSLLRLSSL
LLLRRRSSRSLRSSSSLLRRRR
최소 38 발이 필요합니다. 하나의 가능한 해결책 :
E
EW
E
ESW
S
NS
ES
NESW
NSW
ESW
ES
NSW
NS
NS
NW
EW
NSW
NS
EW
NES
EW
NSW
NE
E
NE
EW
E
E
EW
EW
EW
W
ESW
NSW
NSW
NS
NSW
NEW