Ścieżka Sterna-Brocota

Transkrypt

Ścieżka Sterna-Brocota
Ścieżka Sterna-Brocota
Warsztaty Informatyczne Liceum Kochanowskiego. Limit pamięci: 64MB
Drzewo Sterna-Brocota to drzewo binarne zawierające wszystkie dodatnie ułamki nieskracalne.
Struktura ta posiada wiele ciekawych właściwości. Jeśli liczby a oraz b są względnie pierwsze, to
ułamek
występuje w drzewie dokładnie raz. Ponadto każdą liczbę rzeczywistą dodatnią możemy
zapisać jako ciąg symboli L oraz P tak, że początkowe fragmenty tego ciągu symbolizują liczby
wymierne przybliżające tę liczbę. Na przykład liczbę opiszemy jako LPPL.
Zaczynamy od - symbolizującego zero i symbolizującego nieskończoność. Następnie na kolejnych
piętrach drzewa wpisujemy „pomiędzy” wartości oraz wartość
.
Naszymi wartościami startowymi jest , , .
Zatem w pierwszym kroku mamy:
W drugim kroku:
W trzecim:
Zaś w czwartym:
Napisz program, który czyta dwie liczby m oraz n i wypisuje ścieżkę Sterna-Brocota.
Wejście
Jedyny wiersz danych zawiera dwie liczby całkowite naturalne m i n (1 ≤ n ≤ 105).
Wyjście
Program powinien wypisać ścieżkę z drzewa Sterna-Brocota. Jeśli ścieżka nie istnieje, program
powinien wypisać ”NIE”.
Przykład
Dla danych wejściowych:
poprawną odpowiedzią jest:
5 3
PLP
zaś danych:
poprawną odpowiedzią jest:
7 2
PPPL
a dla danych:
poprawną odpowiedzią jest:
16 6
NIE
Ścieżka Sterna-Brocota
1/1

Podobne dokumenty