問題文


https://atcoder.jp/contests/abc348/tasks/abc348_d

解法


<aside> 💡

ある地点(や数値でもなんでも)からある地点までいけるか判断するときは状態を有向グラフに帰着させることでBFSをして判定できることがある。

</aside>

上記の性質は他のことにも応用できそうである。

薬の数($N\le300$)と少ないのですべての薬の地点からBFSしてある $薬_i$ から $薬_j$ までいけるかBFSで判定する。

$薬_i$ から $薬_j$ まで到達できるのならば $i$ から $j$ へと結ぶような有向辺を作ってあげる。

作ったグラフでスタート地点からBFSしていきゴールに到達できれば答えは Yes である。そうでなければ No

スタート地点とゴール地点に薬が置かれていることは確約されていない、なのでスタート地点とゴール地点に便宜上のエネルギー0の薬を作っておくことで実装がかなり楽になる。

提出コード

https://atcoder.jp/contests/abc348/submissions/57628636