Problem description
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 | |
|
|