만드는 중입니다

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

새들의 의식

면접 대비

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

요약
이름이 붙은 새들의 줄에서 삽입, 이탈, 이동 연산을 처리한 뒤 마지막 배치를 왼쪽에서 오른쪽 순서로 출력한다.
난이도

보통10점 중 4점

유형
배열, 연결 리스트, 시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

새는 놀라운 동물이다. 공작의 구애 춤부터 붉은머리마나킨의 문워크까지, 많은 종이 살아가면서 여러 의식을 펼친다. 이 문제에서는 그중에서도 순열 춤을 다룬다. 이 의식은 그림처럼 전선이나 나뭇가지 위에 한 줄로 앉은 새 무리가 펼친다.

이 의식은 다음 종류의 동작을 순서대로 수행하는 공연으로 단순화할 수 있다.

  • 삽입: 새 한 마리가 무리에 합류해 새 줄의 어딘가에 끼어든다.
  • 이탈: 줄에 있던 새 한 마리가 남은 의식 동안 무리를 떠나 날아간다.
  • 이동: 줄에 있던 새 한 마리가 자기 자리에서 날아가 줄의 다른 어딘가에 앉는다(끼어든다).

줄에서 새들의 처음 위치와 동작의 순서가 주어질 때, 의식이 끝난 뒤 새들의 최종 위치를 구하라.

입력

첫 줄에 공백으로 구분된 두 정수 n (1 ⩽ n ⩽ 1000)과 s (1 ⩽ s ⩽ 5000)가 주어진다. 둘째 줄에는 의식의 처음 배치, 즉 줄에 있는 새들의 위치를 왼쪽에서 오른쪽 순서로 나타내는 n개의 새 이름이 공백으로 구분되어 주어진다. 각 새 이름은 길이가 10 이하인 비어 있지 않은 (소문자) 영숫자 문자열이다(a부터 z, 0부터 9).

동작의 순서는 다음 s개 줄에 한 줄에 하나씩 주어진다. 각 줄은 동작 종류에 따라 다음 형식 중 하나를 따른다. 동작에 나오는 bird-name 매개변수는 입력의 둘째 줄과 같은 형식이다.

  • 삽입: insert bird-name position

position 매개변수는 삽입 위치의 왼쪽에 있는 새의 수를 나타내는 정수다. 이 매개변수는 [0, M] 범위에 있다. 여기서 M은 삽입 전 줄에 있는 새의 총수다. 위치 0은 새를 줄의 맨 앞(가장 왼쪽)에 놓고, 위치 M은 줄의 맨 뒤(가장 오른쪽)에 놓는다.

  • 이탈: depart bird-name
  • 이동: relocate bird-name displacement

displacement 매개변수는 양수, 음수, 0이 될 수 있는 정수다. 변위가 0이면 새는 자기 자리로 날아간다. 그렇지 않으면 변위가 양수(음수)일 때 새는 오른쪽(왼쪽)의 새 k마리를 넘어서 날아간다. 여기서 k는 변위의 절댓값이다. 이 매개변수는 [−L, +R] 범위에 있다. 여기서 L과 R은 각각 이동 전 줄에서 움직이는 새의 왼쪽과 오른쪽에 있는 새의 수다. 변위 −L은 새를 줄의 맨 앞(가장 왼쪽)에 놓고, 변위 +R은 줄의 맨 뒤(가장 오른쪽)에 놓는다.

의식에 참여하는 새 중 이름이 같은 새는 없다. 또한 모든 동작은 실행되는 순간에 의미가 있으며, 의식 내내 나뭇가지 위에 새가 항상 한 마리 이상 있다고 보장된다.

출력

의식의 최종 배치를 한 줄에 출력한다. 줄에는 줄에 있는 새들의 이름이 왼쪽에서 오른쪽 순서로 공백으로 구분되어 있어야 한다.

힌트

처음 두 예제 입력의 영상이 첨부 패키지에 있다. 저작권 고지: 이 문제의 이미지와 영상은 다음 주소에서 가져왔다.

예제3

  1. 예제 1

    입력
    3 1
    juju ashi mashi
    insert fifi 1
    
    예상 출력
    juju fifi ashi mashi
    
  2. 예제 2

    입력
    3 15
    m1 m2 f
    insert m3 0
    relocate m2 -2
    relocate m1 -2
    relocate m3 -2
    relocate m2 -2
    relocate m1 -2
    relocate m3 -2
    depart m2
    relocate m1 1
    relocate f 0
    relocate m3 0
    relocate f -1
    relocate m3 -1
    relocate m1 -2
    relocate f -1
    
    예상 출력
    m1 f m3
    
  3. 예제 3

    입력
    4 5
    hedwig hermes fawkes errol
    insert pigwidgeon 1
    relocate hermes 2
    depart fawkes
    insert buckbeak 0
    depart hedwig
    
    예상 출력
    buckbeak pigwidgeon errol hermes