만드는 중입니다

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

아줄레주

면접 대비

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

요약
두 줄의 타일을 가격 순서로 배열해서 뒤쪽 타일이 같은 열의 앞쪽 타일보다 높도록 합니다. 불가능하면 impossible을 출력합니다.
난이도

보통10점 중 4점

유형
정렬, 그리디
정답자
아직 제출이 없습니다

문제

세라믹 예술가 마리아와 주앙은 포르투에 작은 아줄레주 가게를 열려고 한다. 아줄레주는 포르투갈이 유명한 아름다운 세라믹 타일이다. 두 사람은 매력적인 진열창을 만들고 싶지만, 가게 공간이 좁아서 타일 샘플을 선반 하나에 두 줄로 배열해야 한다. 주앙의 타일 한 장마다 바로 앞에 마리아의 타일이 정확히 한 장씩 놓이고, 마리아의 타일 한 장마다 바로 뒤에 주앙의 타일이 정확히 한 장씩 놓인다. 타일은 모두 수제이며 크기가 여러 가지다. 행인이 두 타일을 모두 볼 수 있도록, 뒷줄 타일은 바로 앞에 있는 타일보다 높아야 한다. 손님의 편의를 위해 각 줄의 타일은 왼쪽에서 오른쪽으로 가격이 낮은 순서(비내림차순)로 놓는다. 가격이 같은 타일은 위의 가시성 조건만 지키면 어떤 순서로 놓아도 된다.

이 제약을 모두 만족하는 각 줄의 타일 순서를 찾거나, 그런 순서가 존재하지 않음을 판단하라.

입력

첫 줄에는 각 줄의 타일 개수 nn (1≤n≤5⋅1051 \le n \le 5 \cdot 10^5)이 주어진다. 다음 네 줄에는 각각 nn개의 정수가 주어진다. 처음 두 줄은 뒷줄 타일, 다음 두 줄은 앞줄 타일을 나타낸다. 각 줄의 타일은 입력 순서대로 1부터 nn까지 번호가 매겨진다. 각 쌍의 첫 줄은 p1,…,pnp_1, \ldots, p_n (1≤pi≤1091 \le p_i \le 10^9)이며, pip_i는 그 줄의 ii번 타일 가격이다. 둘째 줄은 h1,…,hnh_1, \ldots, h_n (1≤hi≤1091 \le h_i \le 10^9)이며, hih_i는 그 줄의 ii번 타일 높이다.

출력

올바른 순서가 존재하면 각각 nn개의 정수로 이루어진 두 줄을 출력한다. 각 줄은 1부터 nn까지 타일 번호의 순열이다. 첫 줄은 뒷줄의 순서, 둘째 줄은 앞줄의 순서다. 제약을 만족하는 순열 쌍이 여러 개이면 어느 쌍이든 인정된다. 순서가 존재하지 않으면 impossible을 출력한다.

예제2

  1. 예제 1

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

    입력
    2
    1 2
    2 3
    2 8
    2 1
    
    예상 출력
    impossible