AT_joi2023ho_d キャットエクササイズ (Cat Exercise)

Description

$ N $ 個のキャットタワーがあり,それぞれに $ 1 $ から $ N $ までの番号が付けられている. タワー $ i $ ( $ 1 \leqq i \leqq N $ ) の高さは $ P_i $ である. タワーの高さは $ 1 $ 以上 $ N $ 以下の相異なる整数である. $ N-1 $ 組のタワーが隣接しており,各 $ j $ ( $ 1 \leqq j \leqq N-1 $ ) について, タワー $ A_j $ とタワー $ B_j $ が隣接している. はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる. 最初,猫が高さ $ N $ のタワーの上にいる. 次に,**キャットエクササイズ**を行う. キャットエクササイズとは, $ 1 $ つのタワーを選んでそこに障害物を置く操作の繰り返しである. ただし,既に障害物を置いたタワーに再び障害物を置くことはできない. 操作によって以下のことが起こる. - 選んだタワーに猫がいない場合,何も起こらない. - 選んだタワーに猫がおり,かつそれに隣接するタワーすべてに障害物が置かれている場合,キャットエクササイズが終了する. - いずれでもない場合,障害物が置かれていない隣接するタワーへの移動を繰り返して選んだタワーから移動できるタワーのうち,選んだタワーを除いて最も高いタワーへ,隣接するタワーへの移動を繰り返すことで猫が移動する.このとき,猫は隣接するタワーへの移動の回数が最小になるように移動する. タワーの高さと隣接するタワーの組の情報が与えられたとき, 障害物の置き方を工夫したときの,猫が隣接するタワーへ移動する回数の合計の最大値を求めるプログラムを作成せよ. ---

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $ $ A_1 $ $ B_1 $ $ A_2 $ $ B_2 $ $ \vdots $ $ A_{N-1} $ $ B_{N-1} $

Output Format

標準出力に,猫が隣接するタワーへ移動する回数の合計の最大値を $ 1 $ 行で出力せよ. ---

Explanation/Hint

### 小課題 1. ( $ 7 $ 点) $ A_i=i $ , $ B_i=i+1 $ ( $ 1 \leqq i \leqq N-1 $ ), $ N \leqq 16 $ . 2. ( $ 7 $ 点) $ A_i=i $ , $ B_i=i+1 $ ( $ 1 \leqq i \leqq N-1 $ ), $ N \leqq 300 $ . 3. ( $ 7 $ 点) $ A_i=i $ , $ B_i=i+1 $ ( $ 1 \leqq i \leqq N-1 $ ), $ N \leqq 5\,000 $ . 4. ( $ 10 $ 点) $ N \leqq 5\,000 $ . 5. ( $ 20 $ 点) $ A_i=i $ , $ B_i=i+1 $ ( $ 1 \leqq i \leqq N-1 $ ). 6. ( $ 23 $ 点) $ A_i=\left\lfloor \frac{i+1}{2} \right\rfloor $ , $ B_i=i+1 $ ( $ 1 \leqq i \leqq N-1 $ ).ただし, $ \lfloor x \rfloor $ は $ x $ の小数点以下を切り捨てた値を表す. 7. ( $ 26 $ 点) 追加の制約はない. --- ### Sample Explanation 1 以下のようにキャットエクササイズを行ったとき,猫は合計 $ 3 $ 回移動する. - タワー $ 1 $ に障害物を置く.このとき,猫は移動しない. - タワー $ 2 $ に障害物を置く.このとき,猫はタワー $ 2 $ からタワー $ 3 $ へ移動し,続いてタワー $ 3 $ からタワー $ 4 $ へと移動する. - タワー $ 4 $ に障害物を置く.このとき,猫はタワー $ 4 $ からタワー $ 3 $ へと移動する. - タワー $ 3 $ に障害物を置く.ここでキャットエクササイズが終了する. 猫が $ 4 $ 回以上隣接するタワーへの移動を行うキャットエクササイズの方法は存在しないため, $ 3 $ を出力する. この入力例は小課題 $ 1,2,3,4,5,7 $ の制約を満たす. --- ### Sample Explanation 2 この入力例は小課題 $ 4,6,7 $ の制約を満たす. ### Constraints - $ 2 \leqq N \leqq 200\,000 $ . - $ 1 \leqq P_i \leqq N $ ( $ 1 \leqq i \leqq N $ ). - $ P_i \neq P_j $ ( $ 1 \leqq i < j \leqq N $ ). - $ 1 \leqq A_j < B_j \leqq N $ ( $ 1 \leqq j \leqq N-1 $ ). - はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる. - 入力される値はすべて整数である.