#802
キャットエクササイズ
서브테스크
시간 제한
2s
메모리 제한
1024MB
제출
0
정답
0
맞힌 사람
0
정답 비율
0.0%
문제
個のキャットタワーがあり,それぞれに から までの番号が付けられている.タワー () の高さは である.タワーの高さは 以上 以下の相異なる整数である. 組のタワーが隣接しており,各 () について,タワー とタワー が隣接している.はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる.
最初,猫が高さ のタワーの上にいる.
次に,キャットエクササイズを行う.キャットエクササイズとは, つのタワーを選んでそこに障害物を置く操作の繰り返しである.ただし,既に障害物を置いたタワーに再び障害物を置くことはできない.操作によって以下のことが起こる.
- 選んだタワーに猫がいない場合,何も起こらない.
- 選んだタワーに猫がおり,かつそれに隣接するタワーすべてに障害物が置かれている場合,キャットエクササイズが終了する.
- いずれでもない場合,障害物が置かれていない隣接するタワーへの移動を繰り返して選んだタワーから移動できるタワーのうち,選んだタワーを除いて最も高いタワーへ,隣接するタワーへの移動を繰り返すことで猫が移動する.このとき,猫は隣接するタワーへの移動の回数が最小になるように移動する.
タワーの高さと隣接するタワーの組の情報が与えられたとき,障害物の置き方を工夫したときの,猫が隣接するタワーへ移動する回数の合計の最大値を求めるプログラムを作成せよ.
입력
入力は以下の形式で標準入力から与えられる.
N
P_1 P_2 \ldots P_N
A_1 B_1
A_2 B_2
...
A_{N-1} B_{N-1}
출력
標準出力に,猫が隣接するタワーへ移動する回数の合計の最大値を 行で出力せよ.
예제 입력 1
4
3 4 1 2
1 2
2 3
3 4
예제 출력 1
3
以下のようにキャットエクササイズを行ったとき,猫は合計 回移動する.
- タワー に障害物を置く.このとき,猫は移動しない.
- タワー に障害物を置く.このとき,猫はタワー からタワー へ移動し,続いてタワー からタワー へと移動する.
- タワー に障害物を置く.このとき,猫はタワー からタワー へと移動する.
- タワー に障害物を置く.ここでキャットエクササイズが終了する.
猫が 回以上隣接するタワーへの移動を行うキャットエクササイズの方法は存在しないため, を出力する.
この入力例は小課題 の制約を満たす.
예제 입력 2
7
3 2 7 1 5 4 6
1 2
1 3
2 4
2 5
3 6
3 7
예제 출력 2
7
この入力例は小課題 の制約を満たす.
제한
- .
- ().
- ().
- ().
- はじめ,どのタワーからどのタワーへも隣接するタワーへ移動する操作を繰り返して移動できる.
- 入力される値はすべて整数である.
서브태스크
- ( 점) , (), .
- ( 점) , (), .
- ( 점) , (), .
- ( 점) .
- ( 점) , ().
- ( 점) , ().ただし, は の小数点以下を切り捨てた値を表す.
- ( 점) 追加の制約はない.
코드 제출
코드를 제출하려면 로그인이 필요합니다.
로그인내 제출
제출 내역이 없습니다.
맞은 사람
아직 맞은 사람이 없습니다.
난이도 투표
로그인 후 AC 받으면 투표할 수 있습니다.
전체 제출
제출 내역이 없습니다.