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

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

재미있는 박스 정리

면접 대비

시간 제한2초메모리 제한512 MB

요약
상자 N개의 크기가 주어질 때, 바깥 상자의 크기가 안쪽 상자의 두 배 이상이면 넣을 수 있고 한 상자에는 하나만 넣을 수 있다. 보이는 상자 수의 최솟값을 구한다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 투 포인터, 이분 탐색
정답자
아직 제출이 없습니다

문제

민호는 박스 N개를 가지고 있다. 박스가 너무 많아져 정리하고 싶어졌는데, 평범한 정리는 지루하다고 생각해 재미를 위해 다음 두 규칙을 정했다.

  1. 박스 x의 크기를 VxV_x, 박스 y의 크기를 VyV_y라고 할 때, Vy≥2VxV_y \ge 2 V_x이면 박스 x를 박스 y 안에 넣을 수 있다.
  2. 박스 x를 박스 y에 넣었다면 박스 y는 다른 박스에 넣지 못한다. 한 박스 안에 들어가는 박스는 많아야 한 개이다.

다른 박스 안에 들어가지 않은 박스만 눈에 보인다. 규칙을 지켜 정리했을 때 눈에 보이는 박스의 개수를 최소로 만들려고 한다. 그 최솟값을 구하라.

입력

첫째 줄에 민호가 가지고 있는 박스의 개수 N (1≤N≤500 0001 \le N \le 500\,000)이 주어진다.

둘째 줄부터 N개의 줄에 걸쳐 박스의 크기 V (1≤V≤100 0001 \le V \le 100\,000)가 한 줄에 하나씩 주어진다.

출력

규칙을 지켜 정리했을 때 눈에 보이는 박스 개수의 최솟값을 한 줄에 출력한다.

예제4

  1. 예제 1

    입력
    8
    2
    5
    7
    6
    9
    8
    4
    2
    
    예상 출력
    5
    
  2. 예제 2

    입력
    8
    9
    1
    6
    2
    6
    5
    8
    3
    
    예상 출력
    5
    
  3. 예제 3

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

    입력
    2
    3
    5
    
    예상 출력
    2