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

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

부활절 선물

면접 대비

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

요약
배열이 주어질 때, 값 차이가 K 이하인 두 원소를 교환하는 연산만으로 정렬할 수 있는 최소 K를 구한다.
난이도

보통10점 중 7점

유형
정렬, 유니온 파인드, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

Wesley는 부활절 선물로 NN개의 원소로 이루어진 배열(a1,a2,…,aNa_1, a_2, \ldots, a_N)을 받았고, 이 배열을 정렬하고 싶어 한다(즉 a1≤a2≤…≤aNa_1 \le a_2 \le \ldots \le a_N이 되도록). 지루해진 Wesley는 두 원소의 절댓값 차이가 KK 이하일 때만 두 원소를 교환할 수 있다는 규칙을 스스로에게 추가해 난이도를 높였다. 원소의 위치는 상관없다. 두 원소의 절댓값 차이가 KK 이하이기만 하면 Wesley는 그 둘을 교환할 수 있다.

안타깝게도 Wesley는 배열을 정렬하는 것이 불가능할 수도 있다는 사실을 곧 깨달았다. 그래서 궁금해졌다. 배열을 정렬할 수 있게 하려면 KK의 최솟값이 얼마여야 할까?

입력

첫째 줄에는 배열의 원소 개수인 정수 NN이 주어진다(1≤N≤2⋅1051 \le N \le 2 \cdot 10^5).

둘째 줄에는 NN개의 정수 a1,a2,…,aNa_1, a_2, \ldots, a_N이 주어진다. 이는 배열 자체이다(1≤ai≤10181 \le a_i \le 10^{18}).

출력

배열을 정렬할 수 있게 하는 KK의 최솟값을 출력한다. 배열이 이미 정렬되어 있다면 00을 출력한다.

예제1

  1. 예제 1

    입력
    8
    1 4 4 2 7 14 12 10
    
    예상 출력
    2