만드는 중입니다

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

팀 선택

시간 제한6초메모리 제한1024 MB

요약
두 팀장이 남은 선수 중에서 고른 순번이 주어질 때, 각 팀이 뽑은 선수를 순서대로 구합니다.
난이도

보통10점 중 4점

유형
배열, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

두 팀장이 1번부터 NN번까지 번호가 붙은 플레이어 중에서 팀원을 고른다. 첫 번째 팀장이 먼저 고르고, 두 팀장은 번갈아 가며 남은 플레이어 중 kk번째 플레이어를 자기 생각에 가장 좋은 사람으로 뽑는다. 두 팀장의 선택이 주어질 때, 각 팀에 속한 플레이어 목록을 구한다.

입력

입력은 세 줄이다. 첫 줄에는 정수 NN이 주어진다. 둘째 줄에는 공백으로 구분된 정수 a1,a2,…,aN/2a_1, a_2, \dots, a_{N/2}가 주어지며, 2k−12k-1번째 턴에 첫 번째 팀장이 남은 플레이어 중 aka_k번째 플레이어를 골랐다는 뜻이다. 셋째 줄에는 공백으로 구분된 정수 b1,b2,…,bN/2b_1, b_2, \dots, b_{N/2}가 주어지며, 2k2k번째 턴에 두 번째 팀장이 남은 플레이어 중 bkb_k번째 플레이어를 골랐다는 뜻이다.

출력

두 줄을 출력한다. 각 줄에는 공백으로 구분된 정수 N/2N/2개를 출력한다. 첫 줄은 첫 번째 팀에 뽑힌 플레이어 x1,x2,…,xN/2x_1, x_2, \dots, x_{N/2}를 뽑힌 순서대로 적은 것이며, xkx_k는 2k−12k-1번째 턴에 뽑혔다. 둘째 줄은 두 번째 팀에 뽑힌 플레이어 y1,y2,…,yN/2y_1, y_2, \dots, y_{N/2}를 뽑힌 순서대로 적은 것이며, yky_k는 2k2k번째 턴에 뽑혔다.

제한

  • 2≤N≤4 000 0002 \le N \le 4\,000\,000
  • NN은 2의 배수이다.
  • 매 단계에서 고르는 번호는 1 이상이고 남은 플레이어 수 이하이다.

예제1

  1. 예제 1

    입력
    4
    1 1
    2 1
    
    예상 출력
    1 2
    3 4