powrót

IV Olimpiada Informatyczna 1996/97

Zadanie: ADD
Autor: Grzegorz Jakacki
ADDON

Zawody II stopnia  
Plik źródłowyADD.??? (np. PAS,C, CPP)
Plik wykonywalnyADD.EXE
Plik wejściowyADD.IN
Plik wyjściowyADD.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.


powrót