І знову дерева#12372

І знову дерева

1 секунда
256 мегабайтів
Дуже складна

Дано кореневе дерево з вершин, де коренем є вершина . У кожній вершині записано ціле число.

Ми будуємо масив за допомогою такої рекурсивної процедури:

dfs(v):
    записати число у вершині v в кінець масиву a
    вибрати довільний порядок синів вершини v
    для кожного сина u у вибраному порядку:
        dfs(u)

Спочатку викликається .

Зауважимо, що порядок синів у кожній вершині можна вибирати довільно, тому залежно від цього масив може бути різним.

Назвемо елемент a_i префіксним максимумом, якщо він строго більший за всі попередні елементи масиву. Перший елемент масиву також вважається префіксним максимумом.

Необхідно знайти максимальну можливу кількість префіксних максимумів у масиві .

Вхідні дані

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

В другому рядку задано масив (1 \le a_i \le 10^9) — значення які записані в вершинах.

В наступних n-1 рядках задано два числа, та (1 \le u , v \le n) — ребра в дереві

Вихідні дані

Вивести одне число — максимальну можливу кількість префіксних максимумів у масиві .

Приклади

Приклад 1

Loading
Loading

Примітка

В першому тестовому випадку маємо таке дерево.

Після вибору найвигіднішого обходу будемо мати наступний масив [5 , 2 , 3 , 6 , 8 , 7 , 9].

Префіксними максимумами для цього масиву будуть [5,6,8,9].

Оцінювання

  1. Підзадача ( балів) : (n \le 10)

  2. Підзадача ( балів) : (a_i \le 10)

  3. Підзадача ( балів) : (v = u-1)

  4. Підзадача ( балів) : (u = 1)

  5. Підзадача ( балів) : (n \le 100)

  6. Підзадача ( балів) : (n \le 500)

  7. Підзадача ( балів) : (n \le 2000)

  8. Підзадача ( балів) : (n \le 75000)

  9. Підзадача ( балів) : Без додаткових обмежень