Polish version    English version  
  Historia OI -> IV OI 1996/1997 -> Zadania


 Aktualności
 O olimpiadzie
 Komitety
 XVIII OI 2010/2011
 Historia OI
XVII OI 2009/2010
XVI OI 2008/2009
XV OI 2007/2008
XIV OI 2006/2007
XIII OI 2005/2006
XII OI 2004/2005
XI OI 2003/2004
X OI 2002/2003
IX OI 2001/2002
VIII OI 2000/2001
VII OI 1999/2000
VI OI 1998/1999
V OI 1997/1998
IV OI 1996/1997
Wyniki III etapu
Wyniki II etapu
Wyniki I etapu
Zadania
Regulamin
Zasady organizacji
Wskazówki
Terminarz
III OI 1995/1996
II OI 1994/1995
I OI 1993/1994
 Książeczki OI
 Reprezentacja
 Obozy Olimpiady
 Galeria zdjęć
 Ciekawe odsyłacze
 OIG LiveCD
 IV OIG 2009/2010
 Historia OIG
 SIO
 MAIN
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:
  • wczytuje z pliku tekstowego ADD.IN zbiór wysokości stabilnych,
  • oblicza maksymalną wysokość komory, dla której istnieje zestaw długości jednocześnie bezpieczny i pełny,
  • znajduje dla takiej komory, zestaw długości bezpieczny i pełny, mający minimalną liczbę elementów,
  • zapisuje wyniki w pliku tekstowym ADD.OUT.

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.




Wersja do druku