sap

Time limit: 1s Memory limit: 128MB Input: Output:

Se dă un arbore cu NN noduri numerotate de la 11 la NN, cu rădăcina în nodul 11, și un vector VV, unde ViV_i reprezintă valoarea nodului ii.

Un șir de lungime NN se numește permutare de ordin NN dacă acesta conține toate numerele de la 11 la NN, în orice ordine. De exemplu, șirurile [1,2,3][1, 2, 3], [2,1,3][2, 1, 3] și [3,2,1][3, 2, 1] sunt permutări de ordin 33, dar șirurile [1,4,3][1, 4, 3] și [1,2,2][1, 2, 2] nu sunt.

Cerință

Se dau QQ întrebări de tipul: Dacă am forma un șir cu toate valorile nodurilor din subarborele nodului XX, este acest șir o permutare de ordin KK, unde KK reprezintă numărul de noduri din subarborele nodului XX?

Să se raspundă la aceste întrebări.

Date de intrare

Pe prima linie se găsește numărul natural NN. Pe următoarea linie, regăsim NN numere naturale, separate printr-un spațiu, reprezentând vectorul VV. Pe următoarea linie găsim N1N - 1 perechi de numere naturale (a,b)(a, b), separate printr-un spațiu, cu semnificația că există muchie între nodurile aa și bb. Pe următoarea linie, găsim numărul natural QQ. Pe următoarele QQ linii, regăsim nodurile XX, cu semnificația de mai sus.

Date de ieșire

Pe următoarele QQ linii se vor regăsi mesajul DA sau NU, reprezentând răspunsurile la cele QQ întrebări.

Restricții și precizări

  • 1N,Q500 0001 \leq N, Q \leq 500 \ 000
  • 1a,bN1 \leq a, b \leq N
  • 1ViN1 \leq V_i \leq N, pentru 1iN1 \leq i \leq N
  • 1XN1 \leq X \leq N
    # Punctaj Restricții
    0 0 Exemplul
    1 21 N,Q100N, Q \leq 100
    2 23 Arborele este un lanț
    3 27 N,Q100 000N, Q \leq 100 \ 000
    4 29 Fără alte restricții suplimentare

Observație

Datorită datelor de intrare foarte mari, se vor folosi instrucțiunile următoare la începutul funcției main() în programul C++:

ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);

Exemplu

stdin

8
6 5 4 7 8 2 1 3
1 2
1 3
2 4
2 5
3 6
6 7
6 8
6
1
2
6
3
5
7

stdout

DA
NU
DA
DA
NU
DA

Explicație

Pentru prima întrebare, putem obține șirul [1,2,3,4,5,6,7,8][1, 2, 3, 4, 5, 6, 7, 8], care este o permutare de ordin 88.

Pentru a doua întrebare, putem obține șirul [5,7,8][5, 7, 8], care nu este o permutare de ordin 33, deoarece nu conține toate numerele de la 11 la 33.

Pentru ultima întrebare, obținem șirul [1][1], care este o permutare de ordin 11.

Log in or sign up to be able to send submissions!