Codeforces Round 496 (Div. 3) |
---|
Закончено |
Последовательность $$$a_1, a_2, \dots, a_n$$$ называется хорошей, если для любого его элемента $$$a_i$$$ найдется такой элемент $$$a_j$$$ ($$$i \ne j$$$), что $$$a_i+a_j$$$ является степенью двойки (то есть равен $$$2^d$$$ для некоторого неотрицательного целого $$$d$$$).
Например, следующие последовательности — хорошие:
Обратите внимание, что по определению пустая последовательность (то есть такая, длина которой равна $$$0$$$) является хорошей.
Например, следующие последовательности не являются хорошими:
Задана последовательность $$$a_1, a_2, \dots, a_n$$$. Какое наименьшее количество элементов надо удалить, чтобы сделать её хорошей? Удалять можно произвольный набор элементов.
В первой строке записано целое число $$$n$$$ ($$$1 \le n \le 120000$$$) — длина заданной последовательности.
Во второй строке записана последовательность целых чисел $$$a_1, a_2, \dots, a_n$$$ ($$$1 \le a_i \le 10^9$$$).
Выведите наименьшее количество элементов, которые надо удалить из заданной последовательности, чтобы сделать её хорошей. Это допустимый случай, что придётся удалить все $$$n$$$ элементов, сделать её пустой и таким образом получить хорошую последовательность.
6
4 7 1 5 4 9
1
5
1 2 3 4 5
2
1
16
1
4
1 1 1 1023
0
В первом примере достаточно удалить один элемент $$$a_4=5$$$. Оставшиеся элементы образуют последовательность $$$[4, 7, 1, 4, 9]$$$, которая является хорошей.
Название |
---|