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

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

Fakes and Shidget

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

요약
n명의 캐릭터가 각각 시간과 보상이 다른 두 퀘스트를 제시할 때, 매 라운드 캐릭터가 균등 무작위로 정해지는 상황에서 장기적으로 얻을 수 있는 분당 최대 골드를 구한다.
난이도

어려움10점 중 8점

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

문제

Pavel은 게임 Fakes and Shidget을 아주 좋아한다. 이 게임은 말 그대로 다음과 같은 과정으로 이루어진다. 플레이어는 nn명의 캐릭터 중 하나를 균등한 확률로 만난다. 각 캐릭터는 플레이어에게 두 퀘스트 중 하나를 고르라고 제안한다. ii번째 캐릭터의 첫 번째 퀘스트는 완료하는 데 aia_i분이 걸리고 bib_i 골드를 주며, 두 번째 퀘스트는 cic_i분이 걸리고 did_i 골드를 준다. 플레이어는 둘 중 하나를 골라 완료하고, 곧바로 또 다른 무작위 캐릭터를 만나고, 이 과정이 반복된다.

Pavel은 이 게임을 무한히 오래 플레이할 것이다. 최적으로 플레이하면 골드를 얼마나 빠르게 벌 수 있을까?

더 형식적으로, tt를 Pavel이 게임을 플레이한 시간, g(t)g(t)를 시간 tt 동안 그가 번 골드의 양이라고 하자. 극한 lim⁡t→∞g(t)t\lim \limits_{t \to \infty} \frac{g\left(t\right)}{t}를 구해야 한다.

입력

첫 번째 줄에는 정수 nn (1≤n≤2000001 \le n \le 200000)이 주어진다. 이는 게임에 등장하는 캐릭터의 수이다.

다음 nn개의 줄 각각에는 네 정수 aia_i, bib_i, cic_i, did_i (1≤ai,bi,ci,di≤1091 \le a_i, b_i, c_i, d_i \le 10^{9})가 주어진다. 이는 ii번째 캐릭터의 첫 번째 퀘스트의 소요 시간, 첫 번째 퀘스트의 보상, 두 번째 퀘스트의 소요 시간, 두 번째 퀘스트의 보상이다.

출력

골드를 벌 수 있는 최대 속도를 나타내는 부동 소수점 수 하나를 출력한다.

답의 절대 오차 또는 상대 오차는 10−910^{-9}를 넘지 않아야 한다.

예제2

  1. 예제 1

    입력
    2
    1 10 10 70
    1 1 10 20
    
    예상 출력
    6.454545454545455
    
  2. 예제 2

    입력
    2
    1 20 100 100
    2 1 2 1
    
    예상 출력
    7.000000000000000