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

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

외로운 Dreamoon 2

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

요약
주어진 정수들을 재배열해 인접한 두 수의 차의 최솟값이 최대가 되도록 만들고, 그러한 배열 하나를 출력한다.
난이도

어려움10점 중 8점

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

문제

여자친구가 없는 Dreamoon은 타이베이의 여러 거리를 걸으며 알고리즘 문제를 생각하곤 한다. 그런데 거리에 다정한 커플이 너무 많아서 Dreamoon은 문제에 집중할 수가 없다.

어느 날, 도처에 넘치는 연인들 속에서도 Dreamoon은 정수 수열 a1,a2,a3,…,aNa_1, a_2, a_3, \ldots, a_N이 담긴 문제 입력을 발견했다.

Dreamoon은 생각했다. 나는 솔로니까, 연속한 두 수의 차이가 모두 커야 해! 즉, Dreamoon은 수열의 순서를 바꿔 min⁡i=2…N(∣ai−ai−1∣)\min\limits_{i = 2 \ldots N}(|a_i - a_{i-1}|) 값을 최대한 크게 만들고 싶어 한다.

그래서 Dreamoon은 여자친구가 있는 Drazil을 불러, 정수 수열의 순서를 바꿔 위 조건을 만족시키라고 강요했다. 불쌍한 Drazil을 도와주자 >_<>\_<

입력

입력은 두 줄로 이루어진다. 첫째 줄에는 정수 NN이 주어진다. 둘째 줄에는 NN개의 정수 a1,a2,…,aNa_1, a_2, \ldots, a_N이 주어진다.

출력

한 줄에 NN개의 정수를 출력한다. 이는 순서를 바꾼 뒤의 정수 수열 aa이다. 이 순서에서 min⁡i=2…N∣ai−ai−1∣\min\limits_{i = 2 \ldots N}{|a_i - a_{i-1}|} 값은 입력 수열을 바꿀 수 있는 모든 순서 가운데 가장 커야 한다. 가능한 답이 여러 개면 아무거나 출력한다.

제한

  • 2≤N≤2×1052 \le N \le 2 \times 10^5
  • −109≤ai≤109-10^9 \le a_i \le 10^9

예제2

  1. 예제 1

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

    입력
    4
    -1 -1 1 1
    
    예상 출력
    1 -1 1 -1