#802
Unrated
キャットエクササイズ
서브테스크
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%

문제

NN 個のキャットタワーがあり,それぞれに 11 から NN までの番号が付けられている.タワー ii (1iN1 \le i \le N) の高さは PiP_i である.タワーの高さは 11 以上 NN 以下の相異なる整数である.N1N-1 組のタワーが隣接しており,各 jj (1jN11 \le j \le N-1) について,タワー AjA_j とタワー BjB_j が隣接している.はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる.

最初,猫が高さ NN のタワーの上にいる.

次に,キャットエクササイズを行う.キャットエクササイズとは,11 つのタワーを選んでそこに障害物を置く操作の繰り返しである.ただし,既に障害物を置いたタワーに再び障害物を置くことはできない.操作によって以下のことが起こる.

  • 選んだタワーに猫がいない場合,何も起こらない.
  • 選んだタワーに猫がおり,かつそれに隣接するタワーすべてに障害物が置かれている場合,キャットエクササイズが終了する.
  • いずれでもない場合,障害物が置かれていない隣接するタワーへの移動を繰り返して選んだタワーから移動できるタワーのうち,選んだタワーを除いて最も高いタワーへ,隣接するタワーへの移動を繰り返すことで猫が移動する.このとき,猫は隣接するタワーへの移動の回数が最小になるように移動する.

タワーの高さと隣接するタワーの組の情報が与えられたとき,障害物の置き方を工夫したときの,猫が隣接するタワーへ移動する回数の合計の最大値を求めるプログラムを作成せよ.

입력

入力は以下の形式で標準入力から与えられる.

N
P_1 P_2 \ldots P_N
A_1 B_1
A_2 B_2
...
A_{N-1} B_{N-1}

출력

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

예제 입력 1

4
3 4 1 2
1 2
2 3
3 4

예제 출력 1

3

以下のようにキャットエクササイズを行ったとき,猫は合計 33 回移動する.

  • タワー 11 に障害物を置く.このとき,猫は移動しない.
  • タワー 22 に障害物を置く.このとき,猫はタワー 22 からタワー 33 へ移動し,続いてタワー 33 からタワー 44 へと移動する.
  • タワー 44 に障害物を置く.このとき,猫はタワー 44 からタワー 33 へと移動する.
  • タワー 33 に障害物を置く.ここでキャットエクササイズが終了する.

猫が 44 回以上隣接するタワーへの移動を行うキャットエクササイズの方法は存在しないため,33 を出力する.

この入力例は小課題 1,2,3,4,5,71, 2, 3, 4, 5, 7 の制約を満たす.

예제 입력 2

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

예제 출력 2

7

この入力例は小課題 4,6,74, 6, 7 の制約を満たす.

제한

  • 2N2000002 \le N \le 200\,000
  • 1PiN1 \le P_i \le N (1iN1 \le i \le N).
  • PiPjP_i \ne P_j (1i<jN1 \le i < j \le N).
  • 1Aj<BjN1 \le A_j < B_j \le N (1jN11 \le j \le N-1).
  • はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる.
  • 入力される値はすべて整数である.

서브태스크

  1. (77 점) Ai=iA_i = i, Bi=i+1B_i = i + 1 (1iN11 \le i \le N-1), N16N \le 16
  2. (77 점) Ai=iA_i = i, Bi=i+1B_i = i + 1 (1iN11 \le i \le N-1), N300N \le 300
  3. (77 점) Ai=iA_i = i, Bi=i+1B_i = i + 1 (1iN11 \le i \le N-1), N5000N \le 5\,000
  4. (1010 점) N5000N \le 5\,000
  5. (2020 점) Ai=iA_i = i, Bi=i+1B_i = i + 1 (1iN11 \le i \le N-1).
  6. (2323 점) Ai=i+12A_i = \lfloor \frac{i+1}{2} \rfloor, Bi=i+1B_i = i + 1 (1iN11 \le i \le N-1).ただし,x\lfloor x \rfloorxx の小数点以下を切り捨てた値を表す.
  7. (2626 점) 追加の制約はない.
코드 제출

코드를 제출하려면 로그인이 필요합니다.

로그인
내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
Unrated0명 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.