





Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Bitek odnalazł drzewo genealogiczne swojej rodziny. Nie jest to zwykłe drzewo genealogiczne, ponieważ nie opisuje ono poszczególnych członków rodziny, ale klany należące do rodziny Bitka. Drzewo klanów składa się z N klanów, każdy klan bezpośrednio wywodzi się z innego klanu, poza klanem założycielskim. Każdy z klanów ma swój herb, jednakże Bitek zauważył, że pewne klany korzystały z tego samego herbu, niezależnie od odległości klanów w drzewie genealogicznym. Dla uproszczenia, klany opisane są kolejnymi liczbami naturalnymi 1, 2, …, N, a rodzaj herbu i-tego klanu to hi. Klan założycielski ma numer 1.
Bitek wymyślił następującą grę. Zaczyna od wyboru dwóch klanów u i v oraz rodzaju herbu h, a następnie szuka takiego klanu w, z którego wywodzą się klany u oraz v, oraz jego rodzaj herbu to h. Wśród wszystkich możliwych klanów w interesuje go taki, który jest najmłodszy (tzn. nie ma żadnego klanu w′, który spełniałby powyższe warunki oraz wywodziłby się z klanu w).
Formalnie mówimy, że klan u wywodzi się z klanu w, jeżeli zachodzi jeden z poniższych warunków:
- u = w,
- u wywodzi się bezpośrednio z w,
- u wywodzi się bezpośrednio z pewnego klanu p, który wywodzi się z w.
Drzewo klanów rodziny Bitka okazało się na tyle duże, że zabawa sprawia mu większy kłopot, niż się początkowo spodziewał. Pomóż mu i napisz program, który będzie odpowiadał na zapytania Bitka.
Wejście
W pierwszym wierszu wejścia znajdują się dwie liczby N oraz Q oznaczające odpowiednio liczbę klanów oraz liczbę zapytań Bitka. W następnym wierszu znajduje się opis drzewa, składający się z N − 1 liczb p2, p3, …, pN. Wartość pi mówi o tym z jakiego klanu bezpośrednio wywodzi się klan i. W następnym wierszu następuje N liczb h1, …, hN opisujących numery herbów kolejnych klanów. W następnych Q wierszach następuje opis zapytań. Każde zapytanie składa się z trzech liczb u, v, h wg opisu gry Bitka.
Wyjście
Należy wypisać Q wierszy odpowiadających na kolejne zapytania Bitka, będące numerami klanów, które są odpowiedzią na dane zapytanie. Jeżeli dla danego zapytania nie istnieje klan spełniający warunki Bitka, należy dla tego zapytania wypisać liczbę -1.
Ograniczenia
1 ≤ N, Q ≤ 200 000, 1 ≤ pi, hi, u, v, h ≤ N, pi < i dla i = 1, …, N.
Przykład
Wejście | Wyjście | |
|
|
Wejście | Wyjście | |
|
|