Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Dobre zbiory
(dobre-zbiory)
Limit pamięci: 128 MB
Limit czasu: 2.00 s

Dobry zbiór to taki zbiór X, w którym dla każdego elementu x ∈ X: 2x ∉ X oraz 3x ∉ X.

Na przykład: zbiór {2, 3, 6, 10} nie jest dobry, bo znajdują się w nim liczby 3 oraz 6 jednocześnie, a także dlatego, że są w nim liczby 2 oraz 6 jednocześnie. Natomiast zbiór {1, 4, 6, 10} jest dobry.

Napisz program, który: wczyta zbiór liczb naturalnych, wyznaczy największy dobry podzbiór tego zbioru i wypisze go na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajduje się jedna liczba naturalna N, określająca liczbę elementów zbioru. W drugim (ostatnim) wierszu wejścia znajduje się ciąg parami różnych N liczb naturalnych Ai pooddzielanych pojedynczymi odstępami – są to elementy zbioru.

Wyjście

W pierwszym wierszu wyjścia powinna się znaleźć jedna liczba naturalna R: moc największego dobrego podzbioru danych z wejścia. W drugim (ostatnim) wierszu wyjścia powinien się znaleźć ciąg R parami różnych liczb naturalnych pooddzielanych pojedynczymi odstępami – dowolny R-elementowy dobry podzbiór zbioru liczb z wejścia.

Ograniczenia

1 ≤ N ≤ 100 000, 1 ≤ Ai ≤ 1018.

Przykład

Wejście Wyjście
6
1 3 4 6 10 5
4
1 4 6 10