キャットエクササイズ (Cat Exercise)
日本語
Language
Contribute a translation- Time limit
- 2000 ms
- Memory limit
- 1024 MB
- Submissions
- 0
- Correct
- 0
- Solved by
- 0
- AC rate
- —
Statement
\(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
入力は以下の形式で標準入力から与えられる.
\(N\)
\(P_1\) \(P_2\) \(\cdots\) \(P_N\)
\(A_1\) \(B_1\)
\(A_2\) \(B_2\)
\(\vdots\)
\(A_{N-1}\) \(B_{N-1}\)
Output
標準出力に,猫が隣接するタワーへ移動する回数の合計の最大値を \(1\) 行で出力せよ.
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\)).
- はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる.
- 入力される値はすべて整数である.
Subtasks
- (\(7\) 点) \(A_i=i\),\(B_i=i+1\) (\(1 \leqq i \leqq N-1\)),\(N \leqq 16\).
- (\(7\) 点) \(A_i=i\),\(B_i=i+1\) (\(1 \leqq i \leqq N-1\)),\(N \leqq 300\).
- (\(7\) 点) \(A_i=i\),\(B_i=i+1\) (\(1 \leqq i \leqq N-1\)),\(N \leqq 5\,000\).
- (\(10\) 点) \(N \leqq 5\,000\).
- (\(20\) 点) \(A_i=i\),\(B_i=i+1\) (\(1 \leqq i \leqq N-1\)).
- (\(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\) の小数点以下を切り捨てた値を表す.
- (\(26\) 点) 追加の制約はない.
Examples
4 3 4 1 2 1 2 2 3 3 4
3
以下のようにキャットエクササイズを行ったとき,猫は合計 \(3\) 回移動する.
- タワー \(1\) に障害物を置く.このとき,猫は移動しない.
- タワー \(2\) に障害物を置く.このとき,猫はタワー \(2\) からタワー \(3\) へ移動し,続いてタワー \(3\) からタワー \(4\) へと移動する.
- タワー \(4\) に障害物を置く.このとき,猫はタワー \(4\) からタワー \(3\) へと移動する.
- タワー \(3\) に障害物を置く.ここでキャットエクササイズが終了する.
猫が \(4\) 回以上隣接するタワーへの移動を行うキャットエクササイズの方法は存在しないため,\(3\) を出力する.
この入力例は小課題 \(1,2,3,4,5,7\) の制約を満たす.
7 3 2 7 1 5 4 6 1 2 1 3 2 4 2 5 3 6 3 7
7
この入力例は小課題 \(4,6,7\) の制約を満たす.
Notes
JOI 2023 · JCIOI · CC BY-SA 4.0
Tags
No tags yet