만드는 중입니다

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

교역의 즐거움

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

요약
두 마을이 각 자원의 총생산량을 유지하면서 각자의 현재 작업 시간 안에서 생산을 나눌 때, 필요한 최소 총작업 시간을 구합니다.
난이도

보통10점 중 6점

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

문제

아폴리안카와 뷰델스도르프는 최근 접촉하게 된 두 작은 신석기 마을이다. 자원은 11부터 NN까지 번호가 매겨진 NN종이 있고, 각 마을은 이 중 어떤 자원이든 독립적으로 생산할 수 있지만 효율은 서로 다르다. 자원 ii 한 단위를 생산하는 데 아폴리안카는 AiA_i 인시가 들고, 뷰델스도르프는 BiB_i 인시가 든다. 현재 아폴리안카는 매 기간 자원 ii를 UiU_i 단위씩 생산하고, 뷰델스도르프는 WiW_i 단위씩 생산한다. 두 마을은 이미 최대 능력으로 일하고 있어서, 지금 투입하는 인시보다 더 많은 인시를 일에 쓸 수 없다. 하지만 교역 덕분에 두 마을은 필요한 자원을 모두 생산하면서도 총 작업 인시를 줄일 수 있고, 남은 시간을 휴식과 게임에 쓸 수 있다. 필요한 것은 두 마을이 협력해 작업을 조율하고 자원을 맞바꾸는 것뿐이다.

예를 들어 N=2N = 2이고, 자원 1은 목재, 자원 2는 식량이라고 하자. A1=1A_1 = 1, U1=2U_1 = 2, B1=4B_1 = 4, W1=1W_1 = 1, A2=2A_2 = 2, U2=1U_2 = 1, B2=3B_2 = 3, W2=4W_2 = 4이다. 아폴리안카는 4인시를 쓴다. 목재 2단위에 A1U1=2A_1 U_1 = 2, 식량 1단위에 A2U2=2A_2 U_2 = 2를 쓴다. 뷰델스도르프는 16인시를 쓴다. 목재 1단위에 B1W1=4B_1 W_1 = 4, 식량 4단위에 B2W2=12B_2 W_2 = 12를 쓴다. 총 생산량은 목재 3단위와 식량 5단위이며, 20인시가 든다.

더 나은 배분이 가능하다. 아폴리안카는 목재 3단위와 식량 0.5단위를 생산하고, 뷰델스도르프는 목재 없이 식량 4.5단위를 생산한다. 총 생산량은 같지만 필요한 작업량은 3A1+0.5A2+0B1+4.5B2=3+1+13.5=17.53A_1 + 0.5A_2 + 0B_1 + 4.5B_2 = 3 + 1 + 13.5 = 17.5인시로 줄어든다.

N=3N = 3인 다른 예시에서는 A1=1A_1 = 1, B1=2B_1 = 2, A2=2A_2 = 2, B2=1B_2 = 1, A3=1A_3 = 1, B3=1B_3 = 1이고, i=1,2,3i = 1, 2, 3에 대해 Ui=Wi=1U_i = W_i = 1이다. 각 마을은 4인시로 일하고 있다. 작업을 약간 재배치하면, 같은 총 자원을 생산하면서 각 마을이 3인시만 일하면 된다. 아폴리안카는 자원 2를 한 단위 덜 만들고 자원 1을 한 단위 더 만들며, 뷰델스도르프는 그 반대로 한다.

이 값들이 주어졌을 때, 두 마을이 정확히 같은 총 자원을 생산하기 위해 작업해야 하는 총 인시의 최솟값을 구하라. 자원별 인시는 정수일 필요가 없다.

입력

첫 줄에 자원의 개수 NN (1≤N≤1051 \le N \le 10^5)이 주어진다. 각 자원은 11부터 NN까지의 서로 다른 정수로 구분된다. 이어지는 NN개의 줄 중 ii번째 줄에는 문제 설명에서 본 것처럼 네 정수 AiA_i, UiU_i, BiB_i, WiW_i (1≤Ai,Ui,Bi,Wi≤10001 \le A_i, U_i, B_i, W_i \le 1000, i=1,2,…,Ni = 1, 2, \dots, N)가 주어진다.

출력

자원을 생산하는 데 필요한 총 인시의 최솟값을 한 줄에 출력한다. 출력값의 절대 오차 또는 상대 오차는 10−910^{-9} 이하여야 한다.

예제2

  1. 예제 1

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

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