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

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

당근 볶기

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

요약
당근 무게가 주어질 때 당근을 실수 무게로 나누어 가장 가벼운 조각과 가장 무거운 조각의 비율이 T를 넘게 만드는 최소 절단 횟수를 구합니다.
난이도

보통10점 중 7점

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

문제

당근을 고르게 볶으려면 먼저 당근의 크기를 서로 비슷하게 맞춰야 한다.

상근이는 당근 NN개를 가지고 있다. 칼질 한 번으로 당근 하나를 두 조각으로 나눌 수 있다. 무게가 ww인 당근을 자르면 무게가 aa와 bb인 당근 두 개가 되고, a+b=wa + b = w이다. 조각의 무게가 정수일 필요는 없고, 잘라서 나온 조각도 다시 자를 수 있다.

상근이는 칼질을 무서워해서 칼질 횟수를 되도록 줄이려고 한다.

당근의 무게가 주어졌을 때, 칼질을 모두 마친 뒤 가장 가벼운 당근의 무게를 가장 무거운 당근의 무게로 나눈 값이 TT보다 커지게 하는 최소 칼질 횟수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 비율 TT와 당근의 수 NN이 주어진다. TT는 소수점 이하 둘째 자리까지 주어지고 0.5<T<10.5 < T < 1을 만족한다. NN은 양의 정수이고 N≤1000N \le 1000이다.

둘째 줄에 당근의 무게 w1,w2,…,wNw_1, w_2, \dots, w_N이 주어진다. wiw_i는 10610^6보다 작은 양의 정수다.

출력

첫째 줄에 가장 가벼운 당근의 무게를 가장 무거운 당근의 무게로 나눈 값이 TT보다 커지게 하는 데 필요한 최소 칼질 횟수를 출력한다. 정답은 항상 500500보다 작다.

소수점 오차로 생기는 오답을 막기 위해, 비율을 TT로 두고 푼 답과 T+0.0001T + 0.0001로 두고 푼 답이 같은 입력만 주어진다.

예제2

  1. 예제 1

    입력
    0.80 2
    1000 1400
    
    예상 출력
    3
    
  2. 예제 2

    입력
    0.99 3
    2000 3000 4000
    
    예상 출력
    6