두 배

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

요약
한 원소를 2배로 만드는 연산을 최소 횟수로 적용해 수열을 오름차순으로 만드는 문제이다.
난이도

보통10점 중 5점

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

문제

길이 NN인 양의 정수열 A_1,…,A_NA\_1, \dots , A\_N이 주어진다. 이 수열을 오름차순으로 만들려 한다. 수열 A_1,…,A_NA\_1, \dots , A\_N이 오름차순이라는 것은, 각 ii (1≤i≤N−11 ≤ i ≤ N - 1)에 대해 A_i≤A_i+1A\_i ≤ A\_{i+1}이라는 것이다.

수열 AA를 오름차순으로 만들기 위해, 수열 AA에 다음 연산을 몇 번이든 반복해서 적용할 수 있다.

  • 어떤 ii (1≤i≤N1 ≤ i ≤ N)에 대해 A_iA\_i에 22를 곱한다.

연산을 최소 횟수로 적용해서 AA를 오름차순으로 만들고 싶다. 이때, 최소 횟수를 구하라.

입력

첫 번째 줄에 NN이 주어진다.

두 번째 줄에 A_1,…,A_NA\_1, \dots , A\_N이 주어진다.

출력

첫 번째 줄에 답을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1≤N≤250,0001 ≤ N ≤ 250\\, 000
  • 1≤A_i≤1,000,0001 ≤ A\_i ≤ 1\\, 000\\, 000 (1≤i≤N1 ≤ i ≤ N)

예제3

  1. 예제 1

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

    입력
    5
    3 1 5 1 5
    
    예상 출력
    6
    
  3. 예제 3

    입력
    5
    1 2 3 4 5
    
    예상 출력
    0