|
|
VI Olimpiada Informatyczna 1998/99
|
|
Zadanie: TRO
|
Autor: Marcin Kubica
|
Trójkolorowe drzewa binarne
| Etap III, dzień próbny |
20 kwietnia 1999
|
| Plik źródłowy: | TRO.??? (np. pas, c, cpp) |
| Plik wykonywalny: | TRO.exe |
| Plik wejściowy: | TRO.in |
| Plik wyjściowy: | TRO.out |
Drzewo składa się z wierzchołka, do którego podczepiono
zero, jedno lub dwa poddrzewa, zwane dziećmi.
Specyfikacją drzewa nazywamy ciąg cyfr. Jeżeli drzewo
składa się z wierzchołka, do którego podczepiono:
- zero dzieci, to jego specyfikacja jest ciągiem jednoelementowym,
którego jedynym elementem jest cyfra `0';
- jedno dziecko, to jego specyfikacja jest ciągiem
rozpoczynającym się od cyfry `1';
po której następuje specyfikacja dziecka.
- dwoje dzieci, to jego specyfikacja jest ciągiem
rozpoczynającym się od cyfry `2', po której następuje najpierw specyfikacja
jednego, a potem drugiego dziecka.
Każdy wierzchołek drzewa trzeba pomalować na czerwono, zielono lub
niebiesko. Należy jednak trzymać się dwóch zasad:
- wierzchołek i jego dziecko nie mogą być pomalowane na ten sam kolor,
- jeżeli wierzchołek ma dwoje dzieci, to muszą one być pomalowane
różnymi kolorami.
Ile wierzchołków można pomalować na zielono?
Zadanie
Napisz program, który:
- wczyta z pliku tekstowego TRO.IN specyfikację drzewa,
- obliczy maksymalną i minimalną liczbę wierzchołków,
które można pomalować na zielono,
- zapisze wyniki w pliku tekstowym TRO.OUT.
Wejście
Pierwszy i jedyny wiersz pliku wejściowego TRO.IN zawiera słowo
o długości nie przekraczającej 10000 znaków, będącą specyfikacją
pewnego drzewa.
Wyjście
Twój program powinien zapisać w pierwszym i jedynym wierszu
pliku wyjściowego TRO.OUT dokładnie dwie liczby
całkowite oddzielone pojedynczym odstępem, odpowiednio
maksymalną i minimalną liczbą wierzchołków,
które można pomalować na zielono.
Przykład
Dla pliku wejściowego TRO.IN:
1122002010
poprawną odpowiedzią jest plik wyjściowy TRO.OUT:
5 2
|