4完
各問題
A - Penalty Kick
for で回すだけですが、[0, n)
でなく [1, n]
で回すとちょっと実装が楽になります。
for (int i = 1; i <= n) cout << (i % 3 ? "o" : "x");
B - Farthest Point
全探索するだけ。ちなみに平方根はとる必要がありませんし制約の範囲内だと int でおさまります。
C - Colorful Beans
map<int, set<int>>
とかで色ごとにまとめて、色ごとに最小値をもとめてそれの最大値を答えればよいです。
set<int>
にはせず最小値だけ保存でもいいですが、実装がほんのちょっとだけ面倒...。
D - Medicines on Grid
D は DP の D。なのかな?
ということで、各マスごとにそこに到達したときのエネルギーの最大値を保存し。それを超えているときだけ遷移できるとする BFS をすればよいです。
E - Minimize Sum of Distances
全方位木DPをすればよさそうというのはわかって、類題の ABC222F も見つけたのに、C の扱いをどうしていいのかわからずで解けず...。
まとめ
D までかなり早く解けたので、これは水復帰は固いなと思ったのに、結局ちょっと届かなかったっぽい。木DPできなかったのはいただけない...。