着火クエリ(Ti,Ai,Bi,Xi)に対して新しい頂点Viを導入し、辺{Ai,Bi}を分割して長さXiの辺{Ai,Vi}と長さL−Xiの辺{Vi,Bi}を張る。ひとつの辺上に複数の着火が起こる場合には、3つ以上に分割する。こうしてできたグラフ上で、各頂点に初めて火が到達する時間を求める。具体的には、Viの距離をd[Vi]:=Tiとセットして多点スタートのダイクストラをする。(形式的には、大頂点Sを導入して各ViとSの間に長さTiの辺があると考えるのがよさそう。)
こうすると、頂点vに初めて火が到達する時間がd[v]に入ることになる。ただ、欲しいのはすべての辺が燃えきる時間なので、maxd[v]は答えにならない。長さlの辺{u,v}が燃えきる時刻をtとすると(t−d[u])+(t−d[v])=lなので、t=(l+d[u]+d[v])/2と求まる。この最大値を答えとすればよい。
時刻を決め打って二分探索をやってしまって、さすがにTLEだった。