Codeforces Round 195 (Div. 2) |
---|
Закончено |
У медведя Василия есть последовательность целых положительных чисел a1, a2, ..., an. Медведь Василий хочет выписать из них несколько чисел себе на листок так, чтобы красота выписанных чисел была максимальна.
Красотой выписанных чисел b1, b2, ..., bk медведь называет такое максимальное целое неотрицательное число v, что число b1 and b2 and ... and bk делится без остатка на число 2v. Если же такого числа v не существует (то есть для любого целого неотрицательного v число b1 and b2 and ... and bk делится без остатка на 2v), красота выписанных чисел равна -1.
Подскажите медведю, какие числа ему нужно выписать, чтобы красота выписанных чисел была максимальна. Если же существует несколько способов выписать числа, следует выбрать тот, при котором медведь выпишет наибольшее количество чисел.
Здесь выражение x and y означает применение к числам x и y операции побитового И. В языках программирования C++ и Java эта операция обозначается как «&», на Pascal она обозначается как «and».
В первой строке записано целое число n (1 ≤ n ≤ 105). Во второй строке записаны n целых чисел через пробел a1, a2, ..., an (1 ≤ a1 < a2 < ... < an ≤ 109).
В первой строке выведите единственное число k (k > 0) — количество чисел, которые надо выписать. Во второй строке выведите k целых чисел b1, b2, ..., bk — числа, которые нужно выписать. Числа b1, b2, ..., bk разрешается выводить в любом порядке, однако все они должны быть различными. Если существует несколько способов выписать числа, следует выбрать тот, при котором количество выписанных чисел максимально. Если все равно существует несколько способов, разрешается вывести любой.
5
1 2 3 4 5
2
4 5
3
1 2 4
1
4
Название |
---|