Спрятать коробки

Имеется n коробок, и вы хотите поместить как можно больше из них внутрь других коробок. При этом необходимо соблюдать несколько правил:
  1. Маленькую коробку можно поместить в другую, большую коробку только в том случае, если большая коробка по размеру как минимум вдвое больше маленькой.
  1. В одну коробку можно положить только одну другую коробку (никакая коробка не может содержать две или более коробок).
notion image
Каково минимальное количество коробок, которые останутся видимыми в конце?

Входные данные

Первая строка входных данных содержит одно целое число n (1 ≤ n ≤ ), обозначающее количество коробок.
Следующая строка содержит n целых чисел, разделенных пробелами: (1 ≤ ), где каждое число указывает размер соответствующей коробки.

Выходные данные

Программа должна вывести минимально возможное количество коробок, которые останутся видимыми в итоге.

Примеры

Input
Output
8 7 5 2 6 4 8 9 2
5
8 3 1 8 2 6 5 6 9
5

Пояснение

  1. 7 5 2 6 4 8 9 2 → (2, 5) (2, 6) (7) (4, 8) (9)
  1. 3 1 8 2 6 5 6 9 → 1 2 3 5 6 6 8 9 → (1, 5) (2, 6) (3, 6) (8) (9)
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue