만드는 중입니다

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

LED

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

요약
전압과 빛의 세기가 주어진 n개의 데이터에 대해, 최대 절대 오차를 가장 작게 만드는 두 단계 계단 함수를 찾아 그 최소 오차를 출력합니다.
난이도

어려움10점 중 8점

유형
이분 탐색, 그리디, 정렬, 슬라이딩 윈도우
정답자
아직 제출이 없습니다

문제

발광 다이오드(LED)는 리드에 문턱값보다 높은 전압의 전류가 가해지면 빛을 내는 반도체 광원이다. ACM R&D는 최근 ACMOLED라는 새로운 LED를 성공적으로 개발했다고 발표했다. ACMOLED는 전압이 올라갈 때 빛의 세기가 두 단계로 바뀌며, 그 모습은 아래 그래프와 같다.

ACMOLED는 전압이 0에서 V1V_1 사이일 때는 빛을 내지 않는다. 전압이 첫 번째 문턱값 V1V_1에 도달하면 세기 L1≥0L_1 \ge 0의 빛을 내고, 두 번째 문턱값 V2V_2에 도달하면 세기 L2≥L1L_2 \ge L_1의 빛을 낸다. 전압 vv를 빛의 세기로 대응시키는 함수를 F(v)F(v)라 하자. 0≤L1≤L20 \le L_1 \le L_2이고 0<V1<V20 < V_1 < V_2인 실수 L1L_1, L2L_2, V1V_1, V2V_2에 대해 다음이 성립한다.

F(v)={0if 0≤v<V1L1if V1≤v<V2L2if v≥V2F(v) = \begin{cases} 0 & \text{if } 0 \le v < V_1 \\ L_1 & \text{if } V_1 \le v < V_2 \\ L_2 & \text{if } v \ge V_2 \end{cases}

ACM R&D는 V1V_1, V2V_2, L1L_1, L2L_2의 정확한 값을 모른다. 반복 실험으로 이 네 값을 추정할 계획이다. 각 실험은 정한 전압에서 전류를 흘려 빛의 세기를 관측한다. nn번의 실험 후 얻는 데이터는 nn개의 순서쌍 (v1,l1),(v2,l2),…,(vn,ln)(v_1, l_1), (v_2, l_2), \ldots, (v_n, l_n)이며, lil_i는 전압 viv_i에서 관측한 세기이다. 관측 장치가 정밀하지 않아 데이터에 오차가 섞일 수 있다. ACM R&D는 다음 오차 함수를 최소로 만드는 추정 세기 함수 FF를 찾고자 한다.

error(F)=max⁡1≤i≤n∣li−F(vi)∣\text{error}(F) = \max_{1 \le i \le n} \left| l_i - F(v_i) \right|

이러한 FF를 찾고 error(F)\text{error}(F)의 값을 출력하는 프로그램을 작성하라.

입력

첫 줄에 정수 nn(1≤n≤300,0001 \le n \le 300{,}000)이 주어진다. 이어지는 nn개의 줄에는 정수 viv_i와 lil_i(0≤vi,li≤1090 \le v_i, l_i \le 10^9)가 각각 주어진다. 같은 viv_i 값을 가지는 순서쌍은 없다.

출력

error(F)\text{error}(F)의 최솟값인 실수 하나를 한 줄에 출력한다. 소수점 첫째 자리까지 반올림한다.

예제2

  1. 예제 1

    입력
    5
    0 0
    2 1
    3 5
    6 7
    7 11
    
    예상 출력
    1.0
    
  2. 예제 2

    입력
    10
    5 9
    8 9
    0 0
    23 18
    26 18
    2 0
    3 0
    13 9
    18 9
    21 18
    
    예상 출력
    0.0