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

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

혼합물 (Large)

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

요약
N개 재료의 한도 안에서 두 제품 A와 B의 생산량을 실수로 정해 가치를 최대로 만들되, 같은 값이면 A를 가장 적게 만드는 해를 구한다.
난이도

보통10점 중 7점

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

문제

어느 연구실에서 지금까지 알려진 적 없는 두 가지 신물질 A와 B를 만드는 방법을 찾아냈다. 실제로 만들어질 수 있는지는 따지지 않는다. A와 B는 모두 NN가지 재료 M1,M2,…,MNM_1, M_2, \dots, M_N을 정해진 비율로 섞어서 만든다. A는 1g당 가치가 XX이고, B는 1g당 가치가 YY이다.

A를 1g 만들려면 MiM_i가 GAiGA_ig 필요하고, B를 1g 만들려면 MiM_i가 GBiGB_ig 필요하다. 재료는 모두 희귀해서 MiM_i는 WiW_ig만 남아 있다. A와 B는 0 이상의 실수 g만큼 만들 수 있고, 정수 g로 맞출 필요는 없다.

남아 있는 재료로 A와 B를 만들어 얻을 수 있는 가치의 최댓값을 구하고, 그때 A와 B를 각각 몇 g 만들어야 하는지 구하는 프로그램을 작성하여라.

입력

첫째 줄에 NN, XX, YY가 주어진다.

둘째 줄에 GA1,GA2,…,GANGA_1, GA_2, \dots, GA_N이 주어지고, 셋째 줄에 GB1,GB2,…,GBNGB_1, GB_2, \dots, GB_N이 주어진다. 넷째 줄에 W1,W2,…,WNW_1, W_2, \dots, W_N이 주어진다.

1≤N≤200 0001 \le N \le 200\,000이고, NN을 제외한 모든 수는 11 이상 1 000 0001\,000\,000 이하의 자연수이다.

출력

첫째 줄에 얻을 수 있는 가치의 최댓값을 출력한다.

둘째 줄에 A를 몇 g 만들어야 하는지와 B를 몇 g 만들어야 하는지를 공백으로 구분해 출력한다.

세 값 모두 정확한 값을 소수점 아래 둘째 자리까지 반올림해서 출력한다. 버리는 부분이 정확히 중간이면 올린다. 예를 들어 정확한 값이 250000.125250000.125이면 250000.13250000.13을 출력한다.

가치가 최대가 되는 방법이 여러 가지이면 A를 가장 적게 만드는 것을 출력한다.

예제3

  1. 예제 1

    입력
    1 2 3
    4
    5
    12
    
    예상 출력
    7.20
    0.00 2.40
    
  2. 예제 2

    입력
    2 2 3
    4 2
    2 6
    12 13
    
    예상 출력
    8.80
    2.30 1.40
    
  3. 예제 3

    입력
    1 2 4
    1
    2
    10
    
    예상 출력
    20.00
    0.00 5.00