NECプログラミングコンテスト2022 (AtCoder Beginner Contest 267) F - Exactly K Steps (500)
木の直径になる端の点2つを求めておく
適当な点からDFSして一番遠い点からDFSし一番遠い点を求める
一番遠い点として求めた2点がそれになる
それぞれ左、右の点とする
それぞれの$ a,bで以下を行う
左の点からの距離が$ b以上なら$ aの左の点に対して$ b個祖先を出力
これはダブリングで事前に求めておく
左の点で条件を満たしていなかったら右の点で同様に求める
両方で条件を満たしてない場合は-1