反乱を嗅ぎつけた多くの G○○gle のコーダーが我々を取り押さえにやってきた. かなりの数だ. その中には,東京大学時代に僕らを優しく指導してくれた先輩たちも多く見受けられる. 残念ながら,今では敵同士だ.
声がした窓の外を見ると,G○○gle の建物に向きあう集団がいた. 黒の生地に赤で I,緑で ○,黄色で M と書かれた T シャツ … 彼らは I○M か!? そして奇妙なことに,彼らは,向かってくる G○○gle のコーダー達を, キーボードに触れることなく倒していた. どうなっている?
2011 年,I○M は彼らの高い技術力を活用し, 自然言語で出題されたクイズに高速かつ正確に応答するシステムである Wats○n を完成させ, クイズ番組にてクイズ王と呼ばれてきた人間たちに勝利した. そして 20XX 年の今,Wats○n は, プログラミングコンテストの問題に対し解答のプログラムを作成するシステムとして生まれ変わったのだ.
I○M の登場により,我々を取り囲む人数が減ってゆく.
僕は,妄想と決別したことにより,全てを思い出していた. 当然,当時の知識や経験は,今から見ればレベルが低すぎて役に立たない. しかし,一番大切なものを思い出すことができた. それは,プログラミングコンテストを愛する気持ちである. 問題を開く瞬間のワクワク感,サンプルが通った瞬間の盛り上がり, ステータスが更新される瞬間の緊張,勝利の瞬間の喜び.
そして,僕は自信の 1 題を繰り出す. これは,東京大学時代の自分が愛した問題「K 番目の数字」を独自のテクニックにより一般化かつ大規模化した問題である.
グラフが与えられる.
下図は,与えられるグラフの例である. 各頂点には上部に頂点の番号が,下部にその頂点に定められた数字 (av) が書かれている.
次に,Q 個の以下のようなクエリが与えられる.
例えば,上図のグラフが与えられている時, (vq, wq, lq) = (1, 6, 3) なるクエリ q に対する答えは 7 である. これは,頂点 1 から頂点 6 への経路には頂点 1, 3, 4, 6 が含まれており, それらに定まった数字 2, 5, 8, 7 の 3 番目めに小さな数字は 7 であることによる.
グラフとクエリを受け取り,結果を出力するプログラムを作成せよ.
入力の最初の行は 2 つの整数 N, Q を含む. これは,頂点数とクエリの数を表す.
続く N 行は,各頂点の持つ数字を表す. これらの行のうちの v 行目は 1 つの整数 xv が書かれており, これは頂点 v の持つ数字を表す.
続く N - 1 行は,辺の情報を表す. これらの行のうちの e 行目は 2 つの整数 ae, be が書かれており, これらは辺 e が結ぶ 2 つの頂点を表す.
続く Q 行は,クエリの情報を表す. これらの行のうちの q 行目は 3 つの整数 vq, wq, lq が書かれており, これらはクエリ q の情報を表す.
出力は Q 行からなる.q 行目にクエリ q の答えを出力せよ.
入力例:
6 11 2 4 5 8 9 7 1 3 2 3 3 4 4 5 4 6 1 6 1 1 6 2 1 6 3 1 6 4 1 2 1 1 2 2 1 2 3 2 5 1 2 5 2 2 5 3 2 5 4
入力例に対する出力:
2 5 7 8 2 4 5 4 5 8 9