1884: Юра й дерево

Перегляд у форматі PDF

Надіслати розв'язок

Бали: 40,00 (partial)
Time limit: 2.5s
Memory limit: 256M
Input: stdin
Output: stdout

Author:
Problem types
Allowed languages
Assembly, Awk, Brain****, C, C++, Java, mono C#, Pascal, Perl, Python, Sed, Text, vb

Юрі дано дерево, що складається з ~n~ вершин, пронумерованих числами від ~1~ до ~n~. На кожній вершині вказаний її колір — натуральне число ~c_i~.

Юру попросили відповісти на ~q~ запитів. Кожен запит складається з двох вершин ~u~ та ~v~. Відповіддю на запит є кількість різних кольорів, які зустрічаються на простому шляху між вершинами ~u~ та ~v~.

Простий шлях — це шлях, в якому кожна вершина та кожне ребро зустрічаються не більше ніж один раз.

Input

У першому рядку розміщене число ~n~ ~(1 \le n \le 10^5)~ — кількість вершин в дереві.

У другому рядку розміщено ~n~ цілих додатніх чисел ~c_i~ ~(1 \le c_i \le min(n, 5000))~ — кольори вершин дерева.

У наступних ~n - 1~ рядках розміщено по два числа ~u~ та ~v~ ~(1 \le u,~ ~v \le n)~ — номери вершин між якими існує ребро.

У наступному рякдку розміщено число ~q~ ~(1 \le q \le 10^5)~ — кількість запитів.

У наступних ~q~ рядках розміщено по два числа ~u~ та ~v~ ~(1 \le u,~ ~v \le n)~ — номери вершин для яких потрібно знайти відповідь.

Output

Виведіть ~q~ цілих чисел — відповіді на запити. Кожна відповідь в новому рядку.

Sample Input 1

5
1 2 3 1 2
1 2
2 3
3 4
4 5
4
1 1
4 2
3 1
5 2

Sample Output 1

1
3
3
3

Sample Input 2

13
1 2 3 4 5 1 2 3 4 5 1 2 3
1 2
1 3
1 13
2 4
2 7
3 6
3 5
4 8
8 9
6 10
5 11
5 12
10
1 13
13 6
10 12
6 11
8 7
4 1
1 10
13 10
8 10
4 12

Sample Output 2

2
2
4
3
3
3
3
3
5
5

Коментарі

Please read the guidelines before commenting.


Ще немає коментарів.