식물 기르기

면접 대비

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

요약
각 식물이 버틸 수 있는 날짜 a_i(2의 거듭제곱)가 주어질 때, 모든 식물이 시들지 않도록 매일 물을 줘야 하는 최소 개수 X를 구한다.
난이도

보통10점 중 6점

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

문제

우진이는 오늘 아침 NN개의 식물을 밭에 심었다. ii번째 식물은 a_ia\_i일 연속으로 물을 받지 못하면 시들어버리는데, 특이하게도 a_ia\_i는 22의 거듭제곱이다.

우진이는 오늘 아침 모든 식물에 물을 주었다. 우진이는 민석이에게 내일부터 매일 아침 NN개의 식물 중에서 XX개의 식물에만 물을 주라고 시켰다. 민석이는 모든 식물이 영원히 시들지 않도록 최선을 다해서 XX개의 식물을 골라 물을 준다.

XX의 값에 따라 모든 식물이 영원히 시들지 않도록 하는 것이 불가능할 수도 있다. 우진이는 적절한 XX를 정해서 민석이에게 알려주려고 한다. 민석이가 모든 식물이 영원히 시들지 않도록 할 수 있는 XX의 최솟값을 구해보자.

입력

첫째 줄에 정수 N(1≤N≤100,000)N(1\le N\le 100\\, 000)이 주어진다.

둘째 줄에 정수 a_1,a_2,⋯ ,a_N(1≤a_i≤216;a\_1,a\_2,\cdots ,a\_N(1\le a\_i\le 2^{16}; a_ia\_i는 22의 거듭제곱))이 공백으로 구분되어 주어진다.

출력

민석이가 최선을 다한다면 모든 식물이 영원히 시들지 않도록 할 수 있는 XX의 최솟값을 구해보자.

힌트

본문의 이미지는 출제자가 직접 그린 동방 프로젝트 2차 창작물입니다.

예제3

  1. 예제 1

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

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

    입력
    5
    4 16 2 32 8
    
    예상 출력
    1