In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
Drzewem nazywamy graf nieskierowany, w którym każde dwa wierzchołki są połączone dokładnie jedną ścieżką prostą, czyli ścieżką bez powtarzających się wierzchołków.
Rozważmy -wierzchołkowe drzewo, w którym wierzchołki są ponumerowane od 1
do
.
Niech
będzie dowolną permutacją zbioru wierzchołków tego drzewa (czyli
funkcją różnowartościową
).
Permutację
nazywamy automorfizmem, jeżeli dla dowolnych dwóch
wierzchołków
drzewa, wierzchołki
i
są połączone krawędzią
wtedy i tylko wtedy, gdy wierzchołki
i
są połączone krawędzią.
W tym zadaniu interesuje nas liczba automorfizmów danego drzewa, a dokładniej,
reszta z dzielenia tej liczby przez .
W pierwszym wierszu standardowego wejścia znajduje się jedna liczba całkowita
(
), oznaczająca liczbę wierzchołków drzewa.
Każdy z kolejnych
wierszy zawiera dwie liczby całkowite
i
(
), reprezentujące krawędź łączącą wierzchołki
i
.
W pierwszym i jedynym wierszu standardowego wyjścia Twój program powinien wypisać jedną
liczbę całkowitą: resztę z dzielenia liczby automorfizmów wyjściowego drzewa
przez .
Dla danych wejściowych:
6 1 3 2 3 3 4 4 5 4 6
poprawną odpowiedzią jest:
8
Wyjaśnienie do przykładu: Przedstawione drzewo ma 8 automorfizmów. Trzy przykładowe z nich to:
Autor zadania: Adam Malinowski.