Ś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