IV Olimpiada Informatyczna 1996/97

Zadanie: ADD
Autor: Grzegorz Jakacki
ADDON

Zawody II stopnia  
Plik źródłowy: ADD.??? (np. pas, c, cpp)
Plik wykonywalny: ADD.exe
Plik wejściowy: ADD.in
Plik wyjściowy: ADD.out

Addon, nowo odkryty pierwiastek promieniotwórczy jest najwydajniejszym ze znanych paliw jądrowych. Trwają prace nad uruchomieniem energetycznego reaktora addonowego.

Projekt przewiduje, że komora paliwowa reaktora będzie miała postać pionowej rury. W komorze jeden na drugim będą ustawione pręty paliwa, czyli walce z addonu. Pręty paliwowe będą produkowane w różnych długościach.

Cykl pracy reaktora rozpoczyna się od wstawienia paliwa do komór. Kolejnym krokiem jest zapłon paliwa. Niestety, wysokość słupa paliwa biorącego udział w reakcji nie może być dowolna, ponieważ tylko dla niektórych wysokości reakcja przebiega bezpiecznie. Wysokości te nazywamy wysokościami stabilnymi.

Projektanci reaktora mają dwa zadania: ustalić wysokość komory paliwowej oraz dobrać zestaw długości, w jakich będą produkowane pręty addonu.

Mówimy, że zestaw długości jest bezpieczny dla danej komory, jeżeli wysokość dowolnego słupa, jaki można ustawić w komorze z prętów o długościach z tego zestawu, jest stabilna.

Mówimy, że zestaw długości jest pełny dla danej komory, jeżeli z prętów o długościach z tego zestawu można ustawić każdy słup o stabilnej wysokości nie większej niż wysokość tej komory.

Zadanie

Napisz program, który:

Wejście

W pierwszym wierszu pliku tekstowego ADD.IN jest zapisana liczba naturalna 1 <= n <= 10000. Jest to liczba danych wysokości stabilnych.

W każdym z n kolejnych wierszy jest zapisana jedna liczba całkowita dodatnia nie większa niż 10000. Są to dane wysokości stabilne zapisane w porządku rosnącym.

Wyjście

W pierwszym wierszu pliku ADD.OUT należy zapisać jedną liczbę - maksymalną wysokość komory.

W kolejnych wierszach - rosnący ciąg liczb (każdą w osobnym wierszu) stanowiący wyznaczony zestaw długości.

Przykład

Dla pliku ADD.IN
14
5
10
12
15
17
20
21
22
24
26
27
30
31
33
poprawnym rozwiązaniem jest plik ADD.OUT
24
5
12
21

Twój program powinien szukać pliku ADD.IN w katalogu bieżącym i tworzyć plik ADD.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę ADD.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonalnej powinien być zapisany w pliku ADD.EXE.