만드는 중입니다

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

카드 뒤집기 2

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

요약
카드 i의 위쪽 숫자가 뒤 카드 j의 위쪽 숫자보다 크면 j를 뒤집습니다. 모든 카드의 최종 위쪽 숫자를 구하는 문제입니다.
난이도

보통10점 중 7점

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

문제

카드 뒤집기 1, 2는 서로 다른 문제다.

준원이는 카드 NN장을 가지고 있다. 각 카드의 양면에는 11 이상 NN 이하의 정수가 적혀 있다. 준원이는 NN장의 카드를 한 줄로 나열했다. 나열된 카드에서 천장을 향하는 면에 적힌 정수는 a1,a2,⋯ ,aNa_1,a_2,\cdots ,a_N이고, 바닥을 향하는 면에 적힌 정수는 b1,b2,⋯ ,bNb_1,b_2,\cdots ,b_N이다.

준원이는 ii를 11부터 NN까지 11씩 늘리면서 다음 행동을 반복한다.

  • ii번째 카드와 jj(i<j≤Ni<j\le N)번째 카드를 비교한다. ii번째 카드와 jj번째 카드의 천장을 향하는 면에 적힌 정수를 각각 XX, YY라고 할 때, X>YX>Y를 만족하는 모든 jj번째 카드를 뒤집는다.

모든 행동을 마친 후, 각 카드의 천장을 향하는 면에 적힌 정수를 구한다.

입력

첫째 줄에 정수 NN(2≤N≤200 0002\le N\le 200\,000)이 주어진다.

둘째 줄에 정수 a1,a2,⋯ ,aNa_1,a_2,\cdots ,a_N(1≤ai≤N1\le a_i\le N)이 공백으로 구분되어 주어진다.

셋째 줄에 정수 b1,b2,⋯ ,bNb_1,b_2,\cdots ,b_N(1≤bi≤N1\le b_i\le N)이 공백으로 구분되어 주어진다.

출력

모든 행동을 마친 후, 각 카드의 천장을 향하는 면에 적힌 정수를 공백으로 구분하여 출력한다.

예제2

  1. 예제 1

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

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