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%를 가지고 있다는 더 강한 주장도 성립할까?
정확히 말하면, 은행 고객 N명의 계좌 잔액이 주어질 때 "정확히 A%의 계좌가 은행 전체 돈의 B%를 가지고 있다"고 말할 수 있는 수 A와 B 중에서 차이 B−A가 최대인 것을 구해야 한다.
계좌 k개(1≤k≤N)를 고르면 A=100k/N이고, B는 고른 계좌의 잔액 합을 전체 잔액 합으로 나누고 100을 곱한 값이다. B−A가 최대가 되는 계좌 개수 k가 여러 개라면 그중 가장 작은 k를 택한다.
예를 들어 잔액이 100유로와 200유로인 계좌 두 개가 있으면, 계좌 50%(200유로인 계좌 하나)가 전체 돈의 3분의 2, 즉 66.666667%를 가지고 있다.
첫째 줄에 은행 고객의 수를 나타내는 정수 N이 주어진다. (1≤N≤300000)
둘째 줄에 계좌 잔액(유로)을 나타내는 정수 N개가 주어진다. 각 잔액은 0 이상 100000000 이하이며, 잔액이 양수인 계좌가 적어도 하나 있다.
첫째 줄에 A를, 둘째 줄에 B를 퍼센트 기호 없이 출력한다.
두 값 모두 소수점 아래 여섯째 자리까지 반올림해서 출력한다. 일곱째 자리 이하가 정확히 절반이면 올림한다. 예를 들어 0.1953125는 0.195313으로 출력한다.