Областная олимпиада по информатике 2020 год, 9-11 классы
Задача C. From And with love
Ограничение по времени:
1 секунда
Ограничение по памяти:
256 мегабайт
Абай очень любит массивы. Еще больше он любит играть с подпоследовательностями массива. Подпоследовательность — это такая последовательность массива, которая может быть получена удалением нескольких (возможно ноль) элементов из этого массива. Вам дан массив A из N целых чисел. Рассмотрим какую--нибудь подпоследовательность массива. Пусть битовый AND этой подпоследовательности равен X. Тогда подпоследовательность называется хорошей, если в ней нет элемента со значением X. Посчитайте количество хороших подпоследовательностей.
Формат входного файла
В первой строке дается натуральное число N — размер массива A.
В следующей строке заданы N целых неотрицательных чисел — элементы массива A.
Формат выходного файла
Выведите одно число — количество хороших подпоследовательностей. Так как ответ может быть достаточно большим, выведите его остаток от деления на 109+7.
Система оценки
Это задача состоит из 5 подзадач и 25 тестов, каждый тест оценивается в 4 балла:
- 1<=N<=15, 0<=Ai<220. Тесты 1 -- 3
- 1<=N<=105, 0<=Ai<24. Тесты 4 -- 7
- 1<=N<=105, 0<=Ai<210. Тесты 8 -- 12
- 1<=N<=105, 0<=Ai<215. Тесты 13 -- 18
- 1<=N<=106, 0<=Ai<220. Тесты 19 -- 25
Пример:
Вход 5 0 2 5 3 7Ответ
6
Замечание
Одной из хороших подпоследовательностей является 2, 5, 7. Ее битовый AND равен 0, при этом число 0 не присутствует среди 2, 5, 7.
Операция побитового AND существует во всех современных языках программирования, например, в языках C++ и Java она обозначена как <<\string&>>, в Pascal — как <Комментарий/решение:
Возможно, что при неправильном наборе формул, они будут
доредактированы модератором. При этом содержание не будет меняться.