お祭り感があって楽しみにしていたが、C問題で面食らった。結果的には30分ちょっとで全完できてよかった。コンテスト中にツイートしてもいいコンテストだった。
A - Walking Takahashi
std::clampを使ってくれという問題文の声を聴くことができて嬉しい。1分は切れなかったけどそれで十分だ。
B - Picking Balls
なんでこれだけ普通の問題なの。vector[2]に入れてソート。
C - Numbering Blocks
簡単なのは明らかなのに実装がクソ面倒くさそうで何かあるはずと5分くらい考えてあきらめる。i番目の積み木がどれかを表す配列を用意してDFS全探索。条件を満たすかの判定も(形がいびつなので)難しいが、右から左を見れば同じ高さに必ず積み木が存在するので楽。これに気づけたので実装できた。これを10分ちょっとで書けてるのけっこうすごい。なおnext_permutationは思いつかなかった。
D - Calculating GCD
gcdは可換なので最終的なXの値は簡単に求まる。問題はいつ1になるか。累積gcdを持っておけば二分探索できるやんけ。<numeric>をインクルードしてstd::gcdを使う。計算量については関連ツイートを見て勉強する。