파레토

k개의 계좌를 골라 A = 100k/N와 그 계좌들이 전체 금액에서 차지하는 비율 B의 차 B-A를 최대로 만드는 문제입니다.

보통5그리디정렬수학누적 합아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

"80/20 법칙"이라고도 부르는 파레토 법칙은 많은 상황에서 결과의 80%가 (가장 중요한) 원인 20%에서 나온다는 법칙이다. 예를 들어 Microsoft는 가장 자주 보고되는 버그 20%를 고치면 시스템 다운타임의 80%가 사라진다는 것을 알아냈다. 비즈니스 세계에서는 수입의 80%가 가장 중요한 고객 20%에게서 나온다는 말이 흔하다. 기본 기능이 무료인 모바일 게임에서는 수익의 50%가 플레이어 0.5%에게서 나온다. 성공의 80%는 활동의 20%에서 나온다고 말하는 사람도 있다.

세상 재화의 80%를 (가장 부유한) 사람 20%가 가지고 있다는 것은 잘 알려진 사실이다. 한 은행 고객들의 계좌를 바탕으로 이 법칙이 맞는지 확인해 보자. 계좌 20%가 전체 돈의 80%를 가지고 있을까? 예를 들어 계좌 10%만으로 전체 돈의 85%를 가지고 있다는 더 강한 주장도 성립할까?

정확히 말하면, 은행 고객 NN명의 계좌 잔액이 주어질 때 "정확히 AA%의 계좌가 은행 전체 돈의 BB%를 가지고 있다"고 말할 수 있는 수 AABB 중에서 차이 BAB - A가 최대인 것을 구해야 한다.

계좌 kk개(1kN1 \le k \le N)를 고르면 A=100k/NA = 100k / N이고, BB는 고른 계좌의 잔액 합을 전체 잔액 합으로 나누고 100을 곱한 값이다. BAB - A가 최대가 되는 계좌 개수 kk가 여러 개라면 그중 가장 작은 kk를 택한다.

예를 들어 잔액이 100유로와 200유로인 계좌 두 개가 있으면, 계좌 50%(200유로인 계좌 하나)가 전체 돈의 3분의 2, 즉 66.666667%를 가지고 있다.

입력

첫째 줄에 은행 고객의 수를 나타내는 정수 NN이 주어진다. (1N3000001 \le N \le 300\,000)

둘째 줄에 계좌 잔액(유로)을 나타내는 정수 NN개가 주어진다. 각 잔액은 00 이상 100000000100\,000\,000 이하이며, 잔액이 양수인 계좌가 적어도 하나 있다.

출력

첫째 줄에 AA를, 둘째 줄에 BB를 퍼센트 기호 없이 출력한다.

두 값 모두 소수점 아래 여섯째 자리까지 반올림해서 출력한다. 일곱째 자리 이하가 정확히 절반이면 올림한다. 예를 들어 0.19531250.19531250.195313으로 출력한다.