아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

공원

면접 대비

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

요약
서쪽부터 동쪽까지 순서대로 주어지는 최대 백만 개 높이마다 서쪽 최고 높이와 동쪽 최고 높이를 구하고 더 높은 지점이 없으면 자신의 높이를 출력합니다.
난이도

쉬움10점 중 2점

유형
누적 합, 배열
정답자
아직 제출이 없습니다

문제

어느 국립공원에는 공원 전체를 서쪽에서 동쪽으로 가로지르는, 길지만 폭은 넓지 않은 산맥이 있다. 해마다 수많은 관광객이 이곳을 찾는데, 길을 잘 찾지 못하는 사람이 많다. 그래서 공원 관리소는 산맥 전체를 같은 길이의 구간으로 나눈 지도를 만들기로 했다. 각 분할 지점마다 그 지점의 높이와 함께 다른 두 수를 적으려 하는데, 하나는 그 지점보다 서쪽에 있는 가장 높은 분할 지점의 높이이고, 다른 하나는 동쪽에 있는 가장 높은 분할 지점의 높이이다.

지도는 거의 완성되었고, 이제 각 분할 지점의 서쪽과 동쪽 방향의 최고 높이만 계산하면 된다. 이 값들을 구하는 프로그램을 작성하여라.

입력

첫째 줄에 산맥의 길이를 나타내는 정수 nn (1≤n≤1 000 0001 \le n \le 1\,000\,000) 이 주어진다. 이어지는 nn개의 줄에는 각 분할 지점의 높이 wiw_i (1≤wi≤1 000 000 0001 \le w_i \le 1\,000\,000\,000) 가 한 줄에 하나씩, 서쪽에서 동쪽 순서로 주어진다.

출력

서쪽에서 동쪽 순서로 각 분할 지점에 대응하는 정확히 nn개의 줄을 출력한다. 각 줄에는 두 정수 aia_i 와 bib_i 를 공백 하나로 구분하여 출력한다. aia_i 는 지점 ii 보다 서쪽에 있는 가장 높은 분할 지점의 높이이고, bib_i 는 동쪽에 있는 가장 높은 분할 지점의 높이이다. 만약 지점 ii 보다 서쪽에 wiw_i 보다 높은 봉우리가 없으면 ai=wia_i = w_i 로 한다. 마찬가지로 지점 ii 보다 동쪽에 wiw_i 보다 높은 봉우리가 없으면 bi=wib_i = w_i 로 한다.

예제4

  1. 예제 1

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

    입력
    1
    5
    
    예상 출력
    5 5
    
  3. 예제 3

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

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