IV Olimpiada Informatyczna 1996/97
|
Zadanie: ADD
|
Autor: Grzegorz Jakacki
|
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.
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.
W kolejnych wierszach - rosnący ciąg liczb (każdą w osobnym wierszu) stanowiący wyznaczony zestaw długości.
14 5 10 12 15 17 20 21 22 24 26 27 30 31 33poprawnym 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.